feat(editor): ✨ Team workspaces
This commit is contained in:
@@ -1,37 +0,0 @@
|
||||
import { Flex, Stack, Heading, Divider, Button } from '@chakra-ui/react'
|
||||
import { ChevronLeftIcon } from 'assets/icons'
|
||||
import { NextChakraLink } from 'components/nextChakra/NextChakraLink'
|
||||
import React from 'react'
|
||||
import { PersonalInfoForm } from 'components/account/PersonalInfoForm'
|
||||
import { BillingSection } from 'components/account/BillingSection'
|
||||
import { EditorSection } from 'components/account/EditorSection'
|
||||
|
||||
export const AccountContent = () => {
|
||||
return (
|
||||
<Flex h="full" w="full" justifyContent="center" align="flex-start" pb="20">
|
||||
<Stack maxW="600px" w="full" pt="4" spacing={10}>
|
||||
<Flex>
|
||||
<Button
|
||||
as={NextChakraLink}
|
||||
variant="outline"
|
||||
size="sm"
|
||||
leftIcon={<ChevronLeftIcon />}
|
||||
href="/typebots"
|
||||
>
|
||||
Back
|
||||
</Button>
|
||||
</Flex>
|
||||
|
||||
<Heading as="h1" fontSize="3xl">
|
||||
Account Settings
|
||||
</Heading>
|
||||
<Divider />
|
||||
<PersonalInfoForm />
|
||||
<Divider />
|
||||
<BillingSection />
|
||||
<Divider />
|
||||
<EditorSection />
|
||||
</Stack>
|
||||
</Flex>
|
||||
)
|
||||
}
|
||||
@@ -1,17 +1,17 @@
|
||||
import { Button, Flex, HStack, Tag, useToast, Text } from '@chakra-ui/react'
|
||||
import { NextChakraLink } from 'components/nextChakra/NextChakraLink'
|
||||
import { useTypebot } from 'contexts/TypebotContext/TypebotContext'
|
||||
import { useUser } from 'contexts/UserContext'
|
||||
import { useWorkspace } from 'contexts/WorkspaceContext'
|
||||
import { useRouter } from 'next/router'
|
||||
import React, { useMemo } from 'react'
|
||||
import { useStats } from 'services/analytics'
|
||||
import { isFreePlan } from 'services/user/user'
|
||||
import { isFreePlan } from 'services/workspace'
|
||||
import { AnalyticsContent } from './AnalyticsContent'
|
||||
import { SubmissionsContent } from './SubmissionContent'
|
||||
|
||||
export const ResultsContent = () => {
|
||||
const router = useRouter()
|
||||
const { user } = useUser()
|
||||
const { workspace } = useWorkspace()
|
||||
const { typebot, publishedTypebot } = useTypebot()
|
||||
const isAnalytics = useMemo(
|
||||
() => router.pathname.endsWith('analytics'),
|
||||
@@ -81,7 +81,7 @@ export const ResultsContent = () => {
|
||||
onDeleteResults={handleDeletedResults}
|
||||
totalResults={stats?.totalStarts ?? 0}
|
||||
totalHiddenResults={
|
||||
isFreePlan(user)
|
||||
isFreePlan(workspace)
|
||||
? (stats?.totalStarts ?? 0) - (stats?.totalCompleted ?? 0)
|
||||
: undefined
|
||||
}
|
||||
|
||||
@@ -10,10 +10,11 @@ import {
|
||||
useResults,
|
||||
} from 'services/typebots'
|
||||
import { unparse } from 'papaparse'
|
||||
import { UnlockProPlanInfo } from 'components/shared/Info'
|
||||
import { UnlockPlanInfo } from 'components/shared/Info'
|
||||
import { LogsModal } from './LogsModal'
|
||||
import { useTypebot } from 'contexts/TypebotContext'
|
||||
import { isDefined, parseResultHeader } from 'utils'
|
||||
import { Plan } from 'db'
|
||||
|
||||
type Props = {
|
||||
typebotId: string
|
||||
@@ -147,9 +148,10 @@ export const SubmissionsContent = ({
|
||||
return (
|
||||
<Stack maxW="1200px" w="full" pb="28" px={['4', '0']} spacing="4">
|
||||
{totalHiddenResults && (
|
||||
<UnlockProPlanInfo
|
||||
<UnlockPlanInfo
|
||||
buttonLabel={`Unlock ${totalHiddenResults} results`}
|
||||
contentLabel="You are seeing complete submissions only."
|
||||
plan={Plan.PRO}
|
||||
/>
|
||||
)}
|
||||
{publishedTypebot && (
|
||||
|
||||
Reference in New Issue
Block a user