diff --git a/app/tipping/group-admin/_components/columns.tsx b/app/tipping/group-admin/_components/columns.tsx index 369dd48..73a83ee 100644 --- a/app/tipping/group-admin/_components/columns.tsx +++ b/app/tipping/group-admin/_components/columns.tsx @@ -9,6 +9,12 @@ import RowAction from './row-action' import { Button } from '@/components/ui/button' import { LucideArrowDown, LucideArrowUp, LucideArrowUpDown } from 'lucide-react' import { RACE_PREDICTION_FIELDS } from '@/constants' +import { Icon } from '@/components/icon' +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from '@/components/ui/tooltip' export const columns: ColumnDef[] = [ { @@ -86,9 +92,23 @@ export const columns: ColumnDef[] = [ }) { switch (overwrite) { case 'countAsCorrect': - return

Correct

+ return ( + + + + + Scored as correct + + ) case 'countAsIncorrect': - return

Incorrect

+ return ( + + + + + Scored as incorrect + + ) default: return

None

diff --git a/app/tipping/group-admin/_components/create-edit-tip-dialog.tsx b/app/tipping/group-admin/_components/create-edit-tip-dialog.tsx index 1861c7e..e4fc064 100644 --- a/app/tipping/group-admin/_components/create-edit-tip-dialog.tsx +++ b/app/tipping/group-admin/_components/create-edit-tip-dialog.tsx @@ -1,5 +1,12 @@ 'use client' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue as ShadSelectValue, +} from '@/components/ui/select' import Alert from '@/components/alert' import { Combobox } from '@/components/combobox' import { ConstructorProps } from '@/components/constructor' @@ -20,7 +27,6 @@ import { FieldGroup, FieldLabel, } from '@/components/ui/field' -import UserAvatar from '@/components/user-avatar' import { RACE_PREDICTION_FIELDS, RacePredictionField } from '@/constants' import { Database } from '@/db/types' import { @@ -31,7 +37,13 @@ import { } from '@/lib/utils/prediction-fields' import { zodResolver } from '@hookform/resolvers/zod' import { isFuture } from 'date-fns' -import { LucideInfo, LucidePlus, LucideTriangleAlert } from 'lucide-react' +import { + LucideCheckCircle, + LucideInfo, + LucidePlus, + LucideTriangleAlert, + LucideXCircle, +} from 'lucide-react' import React from 'react' import { Controller, @@ -45,6 +57,8 @@ import Button from '@/components/button' import { formSchema, Schema } from '../_utils/schema' import { useRouter } from 'next/navigation' import { SelectUser } from './select-user' +import { TIP_OVERWRITE_OPTIONS } from '@/db/schema/schema' +import { Icon } from '@/components/icon' type RaceOption = Pick< Database.Race, @@ -145,6 +159,30 @@ export default function CreateOrEditTipDialog({ + ( + + )} + /> {message && ( ) + function getSelectOptions() { + const options = [ + { + label: 'Normal', + value: 'normal', + }, + { + label: 'Correct', + value: 'countAsCorrect', + className: 'text-success', + icon: Icon.CorrectTip, + }, + { + label: 'Incorrect', + value: 'countAsIncorrect', + className: 'text-destructive', + icon: Icon.IncorrectTip, + }, + ] satisfies ({ + value: (typeof TIP_OVERWRITE_OPTIONS)[number] | 'normal' + label: string + } & Record)[] + + return options + } + function onPositionChange(position: RacePredictionField | undefined) { if (!position) { setTipType('driver') diff --git a/app/tipping/group-admin/_components/row-action.tsx b/app/tipping/group-admin/_components/row-action.tsx index a76114e..1c154ae 100644 --- a/app/tipping/group-admin/_components/row-action.tsx +++ b/app/tipping/group-admin/_components/row-action.tsx @@ -39,6 +39,7 @@ export default function RowAction({ row }: { row: PredictionRow }) { raceId: row.race.id, position: row.position, valueId: row.value.id, + overwriteTo: row.overwrite, }} button={