fix worksapce

This commit is contained in:
2026-01-20 15:11:05 -03:00
parent 9aca2bb223
commit 0e036d0d4f
2 changed files with 27 additions and 44 deletions

View File

@@ -14,7 +14,6 @@ export type Workspace = {
id: string
name: string
cnpj: string
email: string
}
export type WorkspaceContextProps = {
@@ -25,6 +24,15 @@ export type WorkspaceContextProps = {
test_mode: boolean
}
type HttpResponse = {
items: {
sk: string
name: string
cnpj: string
}[]
preferred_org_id?: string
}
export const workspaceContext = createContext<
WorkspaceContextProps & { blocked: boolean }
>()
@@ -33,7 +41,6 @@ export const workspaceMiddleware = async (
{ params, request, context }: LoaderFunctionArgs,
next: () => Promise<Response>
): Promise<Response> => {
const org_id = params.orgid
const user = context.get(userContext)!
const r = await req({
@@ -46,17 +53,20 @@ export const workspaceMiddleware = async (
throw new Response(await r.text(), { status: r.status })
}
const { items } = (await r.json()) as { items: { sk: string }[] }
const workspaces = items.map(({ sk, ...props }) => {
const [, id] = sk?.split('#')
return { ...props, id }
}) as Workspace[]
const { items, preferred_org_id } = (await r.json()) as HttpResponse
const workspaces: Workspace[] = items.map(({ sk, name, cnpj }) => {
const [, id] = sk.split('#')
return { id, name, cnpj }
})
const activeWorkspace = workspaces.find(({ id }) => id === org_id)
const activeWorkspace = workspaces.find(({ id }) => id === params.orgid)
if (!activeWorkspace) {
const { id } = workspaces[0]
throw redirect(`/${id}/main`)
const fallback = preferred_org_id
? (workspaces.find(({ id }) => id === preferred_org_id) ?? workspaces[0])
: workspaces[0]
throw redirect(`/${fallback.id}/main`)
}
const org = (await req({