feat(web/menu): add description support on list items

This commit is contained in:
Luke
2022-10-27 10:09:48 +02:00
parent b354e0836c
commit 1127108fcd
5 changed files with 20 additions and 6 deletions

View File

@@ -17,7 +17,11 @@ export const debugMenu = () => {
},
{
label: 'Vehicle class',
values: ['Nice', 'Super nice', 'Extra nice'],
values: [
{ label: 'nice', description: 'description 1' },
{ label: 'even nicer', description: 'description 2' },
'pogchamp',
],
icon: 'tag',
description: 'Tooltip description 2',
},

View File

@@ -38,7 +38,12 @@ const ListItem = forwardRef<Array<HTMLDivElement | null>, Props>(({ item, index,
<Text color="#909296" textTransform="uppercase" fontSize={12} verticalAlign="middle">
{item.label}
</Text>
<Text>{item.values[scrollIndex]}</Text>
<Text>
{typeof item.values[scrollIndex] === 'object'
? // @ts-ignore for some reason even checking the type TS still thinks it's a string
item.values[scrollIndex].label
: item.values[scrollIndex]}
</Text>
</Stack>
<Stack direction="row" spacing="sm" pr={3} justifyContent="center" alignItems="center">
<FontAwesomeIcon icon="chevron-left" fontSize={16} color="#909296" />

View File

@@ -11,7 +11,7 @@ import React from 'react';
export interface MenuItem {
label: string;
values?: string[];
values?: Array<string | { label: string; description: string }>;
description?: string;
icon?: IconProp;
defaultIndex?: number;
@@ -147,7 +147,12 @@ const ListMenu: React.FC = () => {
<>
{visible && (
<Tooltip
label={menu.items[selected].description}
label={
Array.isArray(menu.items[selected].values) && typeof menu.items[selected].values === 'object'
? // @ts-ignore
menu.items[selected].values[indexStates[selected]].description
: menu.items[selected].description
}
isOpen={!!menu.items[selected].description}
bg="#25262B"
color="#909296"