2
0

feat(editor): Team workspaces

This commit is contained in:
Baptiste Arnaud
2022-05-13 15:22:44 -07:00
parent 6c2986590b
commit f0fdf08b00
132 changed files with 3354 additions and 1228 deletions

View File

@ -1,46 +0,0 @@
import { Credentials } from 'models'
import useSWR from 'swr'
import { sendRequest } from 'utils'
import { fetcher } from '../utils'
export const useCredentials = ({
userId,
onError,
}: {
userId?: string
onError?: (error: Error) => void
}) => {
const { data, error, mutate } = useSWR<{ credentials: Credentials[] }, Error>(
userId ? `/api/users/${userId}/credentials` : null,
fetcher
)
if (error && onError) onError(error)
return {
credentials: data?.credentials ?? [],
isLoading: !error && !data,
mutate,
}
}
export const createCredentials = async (
userId: string,
credentials: Omit<Credentials, 'ownerId' | 'id' | 'iv' | 'createdAt'>
) =>
sendRequest<{
credentials: Credentials
}>({
url: `/api/users/${userId}/credentials`,
method: 'POST',
body: credentials,
})
export const deleteCredentials = async (
userId: string,
credentialsId: string
) =>
sendRequest<{
credentials: Credentials
}>({
url: `/api/users/${userId}/credentials/${credentialsId}`,
method: 'DELETE',
})

View File

@ -1,47 +0,0 @@
import { CustomDomain } from 'db'
import { Credentials } from 'models'
import useSWR from 'swr'
import { sendRequest } from 'utils'
import { fetcher } from '../utils'
export const useCustomDomains = ({
userId,
onError,
}: {
userId?: string
onError: (error: Error) => void
}) => {
const { data, error, mutate } = useSWR<
{ customDomains: Omit<CustomDomain, 'createdAt'>[] },
Error
>(userId ? `/api/users/${userId}/customDomains` : null, fetcher)
if (error) onError(error)
return {
customDomains: data?.customDomains,
isLoading: !error && !data,
mutate,
}
}
export const createCustomDomain = async (
userId: string,
customDomain: Omit<CustomDomain, 'ownerId' | 'createdAt'>
) =>
sendRequest<{
credentials: Credentials
}>({
url: `/api/users/${userId}/customDomains`,
method: 'POST',
body: customDomain,
})
export const deleteCustomDomain = async (
userId: string,
customDomain: string
) =>
sendRequest<{
credentials: Credentials
}>({
url: `/api/users/${userId}/customDomains/${customDomain}`,
method: 'DELETE',
})

View File

@ -1,3 +1,3 @@
export * from './user'
export * from './customDomains'
export * from './credentials'
export * from '../customDomains'
export * from '../credentials'

View File

@ -1,47 +0,0 @@
import { Typebot } from 'models'
import { fetcher } from 'services/utils'
import useSWR from 'swr'
import { isNotDefined } from 'utils'
export const useSharedTypebotsCount = ({
userId,
onError,
}: {
userId?: string
onError: (error: Error) => void
}) => {
const { data, error, mutate } = useSWR<{ count: number }, Error>(
userId ? `/api/users/${userId}/sharedTypebots?count=true` : null,
fetcher
)
if (error) onError(error)
return {
totalSharedTypebots: data?.count ?? 0,
isLoading: !error && isNotDefined(data?.count),
mutate,
}
}
export const useSharedTypebots = ({
userId,
onError,
}: {
userId?: string
onError: (error: Error) => void
}) => {
const { data, error, mutate } = useSWR<
{
sharedTypebots: Pick<
Typebot,
'name' | 'id' | 'publishedTypebotId' | 'icon'
>[]
},
Error
>(userId ? `/api/users/${userId}/sharedTypebots` : null, fetcher)
if (error) onError(error)
return {
sharedTypebots: data?.sharedTypebots,
isLoading: !error && isNotDefined(data),
mutate,
}
}

View File

@ -1,5 +1,5 @@
import { Plan, User } from 'db'
import { isNotDefined, sendRequest } from 'utils'
import { User } from 'db'
import { sendRequest } from 'utils'
export const updateUser = async (id: string, user: User) =>
sendRequest({
@ -7,6 +7,3 @@ export const updateUser = async (id: string, user: User) =>
method: 'PUT',
body: user,
})
export const isFreePlan = (user?: User) =>
isNotDefined(user) || user?.plan === Plan.FREE