Files
blitzkit/src/app/tools/session/components/CustomColumn.tsx
T

61 lines
1.8 KiB
TypeScript
Raw Normal View History

2023-10-08 17:34:02 -05:00
import { ContextMenu, DropdownMenu } from '@radix-ui/themes';
2023-10-01 18:43:40 -05:00
import mutateSession, { useSession } from '../../../../stores/session';
export type CustomColumnDisplay =
| 'battles'
| 'winrate'
| 'wn8'
| 'damage'
| 'none';
const NO_DELTA: CustomColumnDisplay[] = ['battles', 'wn8', 'none'];
interface CustomColumn {
2023-10-08 17:34:02 -05:00
Builder: typeof DropdownMenu | typeof ContextMenu;
2023-10-01 18:43:40 -05:00
column: number;
}
2023-10-08 17:34:02 -05:00
export function CustomColumn({ column, Builder }: CustomColumn) {
2023-10-01 18:43:40 -05:00
const customColumn = useSession((state) => state.customColumns[column]);
return (
2023-10-08 17:34:02 -05:00
<Builder.Sub>
<Builder.SubTrigger>Column {column + 1}</Builder.SubTrigger>
2023-10-01 18:43:40 -05:00
2023-10-08 17:34:02 -05:00
<Builder.SubContent>
<Builder.RadioGroup
2023-10-01 18:43:40 -05:00
value={customColumn.display}
onValueChange={(event) =>
mutateSession((draft) => {
draft.customColumns[column].display =
event as CustomColumnDisplay;
})
}
>
2023-10-08 17:34:02 -05:00
<Builder.RadioItem value="battles">Battles</Builder.RadioItem>
<Builder.RadioItem value="winrate">Winrate</Builder.RadioItem>
<Builder.RadioItem value="wn8">WN8</Builder.RadioItem>
<Builder.RadioItem value="damage">Damage</Builder.RadioItem>
<Builder.RadioItem value="none">None</Builder.RadioItem>
</Builder.RadioGroup>
2023-10-01 18:43:40 -05:00
{!NO_DELTA.includes(customColumn.display) && (
<>
2023-10-08 17:34:02 -05:00
<Builder.Separator />
2023-10-01 18:43:40 -05:00
2023-10-08 17:34:02 -05:00
<Builder.CheckboxItem
2023-10-01 18:43:40 -05:00
checked={customColumn.showDelta}
onCheckedChange={(checked) =>
mutateSession((draft) => {
draft.customColumns[column].showDelta = checked;
})
}
>
Show delta
2023-10-08 17:34:02 -05:00
</Builder.CheckboxItem>
2023-10-01 18:43:40 -05:00
</>
)}
2023-10-08 17:34:02 -05:00
</Builder.SubContent>
</Builder.Sub>
2023-10-01 18:43:40 -05:00
);
}