diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsButton.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsButton.tsx index 0e2e861f..91f0c3ce 100644 --- a/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsButton.tsx +++ b/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsButton.tsx @@ -4,8 +4,8 @@ import { Button, Menu } from '@/primitives' import { useState } from 'react' import { UsernameDialog } from '@/features/rooms/livekit/components/dialogs/UsernameDialog' -import { SettingsDialog } from '@/features/settings' import { OptionsMenuItems } from '@/features/rooms/livekit/components/controls/Options/OptionsMenuItems' +import { SettingsDialogExtended } from '@/features/settings/components/SettingsDialogExtended' export type DialogState = 'username' | 'settings' | null @@ -29,7 +29,7 @@ export const OptionsButton = () => { isOpen={dialogOpen === 'username'} onOpenChange={(v) => !v && setDialogOpen(null)} /> - !v && setDialogOpen(null)} /> diff --git a/src/frontend/src/features/settings/components/SettingsDialogExtended.tsx b/src/frontend/src/features/settings/components/SettingsDialogExtended.tsx new file mode 100644 index 00000000..47dc91e2 --- /dev/null +++ b/src/frontend/src/features/settings/components/SettingsDialogExtended.tsx @@ -0,0 +1,73 @@ +import { Dialog, type DialogProps } from '@/primitives' +import { Tab, Tabs, TabPanel, TabList } from '@/primitives/Tabs.tsx' +import { css } from '@/styled-system/css' +import { text } from '@/primitives/Text.tsx' +import { Heading } from 'react-aria-components' +import { useTranslation } from 'react-i18next' + +const tabsStyle = css({ + maxHeight: '40.625rem', // fixme size copied from meet settings modal + width: '50rem', // fixme size copied from meet settings modal + marginY: '-1rem', // fixme hacky solution to cancel modal padding + maxWidth: '100%', + overflow: 'hidden', + height: 'calc(100vh - 2rem)', +}) + +const tabListContainerStyle = css({ + display: 'flex', + flexDirection: 'column', + borderRight: '1px solid lightGray', // fixme poor color management + paddingY: '1rem', + paddingRight: '1.5rem', + flex: '0 0 16rem', // fixme size copied from meet settings modal +}) + +const tabPanelContainerStyle = css({ + display: 'flex', + flexGrow: '1', + marginTop: '3.5rem', +}) + +export type SettingsDialogExtended = Pick< + DialogProps, + 'isOpen' | 'onOpenChange' +> + +export const SettingsDialogExtended = (props: SettingsDialogExtended) => { + // display only icon on small screen + const { t } = useTranslation('settings') + return ( + + +
+ + {t('dialog.heading')} + + + + {t('tabs.account')} + + + {t('tabs.audio')} + + + {t('tabs.general')} + + +
+
+ + There are your profile settings + + + There are your audio settings + + + There are your general setting + +
+
+
+ ) +} diff --git a/src/frontend/src/locales/de/settings.json b/src/frontend/src/locales/de/settings.json index 65808b8c..aeb9d019 100644 --- a/src/frontend/src/locales/de/settings.json +++ b/src/frontend/src/locales/de/settings.json @@ -11,5 +11,10 @@ "heading": "", "label": "" }, - "settingsButtonLabel": "" + "settingsButtonLabel": "", + "tabs": { + "account": "", + "audio": "", + "general": "" + } } diff --git a/src/frontend/src/locales/en/settings.json b/src/frontend/src/locales/en/settings.json index e6b9051d..c640ba7b 100644 --- a/src/frontend/src/locales/en/settings.json +++ b/src/frontend/src/locales/en/settings.json @@ -11,5 +11,10 @@ "heading": "Language", "label": "Language" }, - "settingsButtonLabel": "Settings" + "settingsButtonLabel": "Settings", + "tabs": { + "account": "Profile", + "audio": "Audio", + "general": "General" + } } diff --git a/src/frontend/src/locales/fr/settings.json b/src/frontend/src/locales/fr/settings.json index d5ddea2c..2bece896 100644 --- a/src/frontend/src/locales/fr/settings.json +++ b/src/frontend/src/locales/fr/settings.json @@ -11,5 +11,10 @@ "heading": "Langue", "label": "Langue de l'application" }, - "settingsButtonLabel": "Paramètres" + "settingsButtonLabel": "Paramètres", + "tabs": { + "account": "Profile", + "audio": "Audio", + "general": "Général" + } }