2021-12-06 15:48:50 +01:00
|
|
|
import React from 'react'
|
2022-11-30 13:57:28 +01:00
|
|
|
import { HStack, Flex, Button, useDisclosure } from '@chakra-ui/react'
|
2023-01-26 17:04:37 +01:00
|
|
|
import { HardDriveIcon, SettingsIcon } from '@/components/icons'
|
2023-03-15 11:51:30 +01:00
|
|
|
import { useUser } from '@/features/account/hooks/useUser'
|
2023-03-15 08:35:16 +01:00
|
|
|
import { isNotDefined } from '@typebot.io/lib'
|
2022-11-02 19:45:46 +01:00
|
|
|
import Link from 'next/link'
|
2023-01-26 17:04:37 +01:00
|
|
|
import { EmojiOrImageIcon } from '@/components/EmojiOrImageIcon'
|
2023-10-27 09:23:50 +02:00
|
|
|
import { useTranslate } from '@tolgee/react'
|
2023-03-15 11:51:30 +01:00
|
|
|
import { useWorkspace } from '@/features/workspace/WorkspaceProvider'
|
|
|
|
import { WorkspaceDropdown } from '@/features/workspace/components/WorkspaceDropdown'
|
|
|
|
import { WorkspaceSettingsModal } from '@/features/workspace/components/WorkspaceSettingsModal'
|
2021-12-06 15:48:50 +01:00
|
|
|
|
|
|
|
export const DashboardHeader = () => {
|
2023-10-27 09:23:50 +02:00
|
|
|
const { t } = useTranslate()
|
2023-09-26 14:02:53 +02:00
|
|
|
const { user, logOut } = useUser()
|
2022-11-30 13:57:28 +01:00
|
|
|
const { workspace, switchWorkspace, createWorkspace } = useWorkspace()
|
2021-12-06 15:48:50 +01:00
|
|
|
|
2022-05-13 15:22:44 -07:00
|
|
|
const { isOpen, onOpen, onClose } = useDisclosure()
|
|
|
|
|
|
|
|
const handleCreateNewWorkspace = () =>
|
|
|
|
createWorkspace(user?.name ?? undefined)
|
|
|
|
|
2021-12-06 15:48:50 +01:00
|
|
|
return (
|
|
|
|
<Flex w="full" borderBottomWidth="1px" justify="center">
|
|
|
|
<Flex
|
|
|
|
justify="space-between"
|
|
|
|
alignItems="center"
|
|
|
|
h="16"
|
2022-07-06 07:47:14 +02:00
|
|
|
maxW="1000px"
|
2021-12-06 15:48:50 +01:00
|
|
|
flex="1"
|
|
|
|
>
|
2022-11-02 19:45:46 +01:00
|
|
|
<Link href="/typebots" data-testid="typebot-logo">
|
2023-01-26 17:04:37 +01:00
|
|
|
<EmojiOrImageIcon
|
|
|
|
boxSize="30px"
|
|
|
|
icon={workspace?.icon}
|
|
|
|
defaultIcon={HardDriveIcon}
|
|
|
|
/>
|
2022-11-02 19:45:46 +01:00
|
|
|
</Link>
|
2022-05-13 15:22:44 -07:00
|
|
|
<HStack>
|
|
|
|
{user && workspace && (
|
|
|
|
<WorkspaceSettingsModal
|
|
|
|
isOpen={isOpen}
|
|
|
|
onClose={onClose}
|
|
|
|
user={user}
|
|
|
|
workspace={workspace}
|
|
|
|
/>
|
|
|
|
)}
|
2022-06-01 12:09:45 +02:00
|
|
|
<Button
|
|
|
|
leftIcon={<SettingsIcon />}
|
|
|
|
onClick={onOpen}
|
|
|
|
isLoading={isNotDefined(workspace)}
|
|
|
|
>
|
2023-10-27 09:23:50 +02:00
|
|
|
{t('dashboard.header.settingsButton.label')}
|
2022-05-13 15:22:44 -07:00
|
|
|
</Button>
|
2022-11-30 13:57:28 +01:00
|
|
|
<WorkspaceDropdown
|
|
|
|
currentWorkspace={workspace}
|
2023-09-26 14:02:53 +02:00
|
|
|
onLogoutClick={logOut}
|
2022-11-30 13:57:28 +01:00
|
|
|
onCreateNewWorkspaceClick={handleCreateNewWorkspace}
|
|
|
|
onWorkspaceSelected={switchWorkspace}
|
|
|
|
/>
|
2022-05-13 15:22:44 -07:00
|
|
|
</HStack>
|
2021-12-06 15:48:50 +01:00
|
|
|
</Flex>
|
|
|
|
</Flex>
|
|
|
|
)
|
|
|
|
}
|