@flexkit/studio 0.2.12 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/activity-nav-button-RDL5GIWG.js +2 -0
- package/dist/{activity-nav-button-LZESIQL2.js.map → activity-nav-button-RDL5GIWG.js.map} +1 -1
- package/dist/astro.js +1 -1
- package/dist/{chat-page-EKOGKEFR.js → chat-page-B2IOPTUP.js} +3 -3
- package/dist/{chat-page-EKOGKEFR.js.map → chat-page-B2IOPTUP.js.map} +1 -1
- package/dist/chunk-APVKB4FT.js +2 -0
- package/dist/chunk-APVKB4FT.js.map +1 -0
- package/dist/{chunk-BOXFB6E6.js → chunk-C5Y6OZFR.js} +2 -2
- package/dist/{chunk-BOXFB6E6.js.map → chunk-C5Y6OZFR.js.map} +1 -1
- package/dist/chunk-CAZ6EUR2.js +2 -0
- package/dist/chunk-CAZ6EUR2.js.map +1 -0
- package/dist/{chunk-OFJOZMCR.js → chunk-CJGP4Y5Y.js} +2 -2
- package/dist/{chunk-OFJOZMCR.js.map → chunk-CJGP4Y5Y.js.map} +1 -1
- package/dist/{chunk-C47FNPLK.js → chunk-CWJWOJRO.js} +3 -3
- package/dist/{chunk-C47FNPLK.js.map → chunk-CWJWOJRO.js.map} +1 -1
- package/dist/{chunk-2AVINVYN.js → chunk-DJPVRAFE.js} +22 -20
- package/dist/{chunk-7IHEL6LU.js → chunk-ETQ3Q472.js} +2 -2
- package/dist/{chunk-7IHEL6LU.js.map → chunk-ETQ3Q472.js.map} +1 -1
- package/dist/{chunk-EWBEPYML.js → chunk-KNESQOI5.js} +3 -3
- package/dist/{chunk-EWBEPYML.js.map → chunk-KNESQOI5.js.map} +1 -1
- package/dist/{chunk-QQSI7BPK.js → chunk-N53TGGN5.js} +3 -3
- package/dist/{chunk-QQSI7BPK.js.map → chunk-N53TGGN5.js.map} +1 -1
- package/dist/chunk-TOY7ZRK2.js +384 -0
- package/dist/chunk-TOY7ZRK2.js.map +1 -0
- package/dist/{chunk-F2DHCPWW.js → chunk-VPTDAFFZ.js} +2 -2
- package/dist/{chunk-F2DHCPWW.js.map → chunk-VPTDAFFZ.js.map} +1 -1
- package/dist/chunk-XDLTO6VU.js +3 -0
- package/dist/chunk-XDLTO6VU.js.map +1 -0
- package/dist/chunk-ZLWYVTGO.js +2 -0
- package/dist/chunk-ZLWYVTGO.js.map +1 -0
- package/dist/electron.d.ts +103 -0
- package/dist/electron.js +131 -0
- package/dist/index.css +9 -0
- package/dist/index.d.ts +31 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/list-4NZLZRX3.js +2 -0
- package/dist/{list-DOTORSUC.js.map → list-4NZLZRX3.js.map} +1 -1
- package/dist/nextjs.js +1 -1
- package/dist/{pages-ILAXYS2J.js → pages-7MFZAVLV.js} +4 -4
- package/dist/{pages-ILAXYS2J.js.map → pages-7MFZAVLV.js.map} +1 -1
- package/dist/{plugin-pages-RKJRHKNL.js → plugin-pages-RNB46YPQ.js} +2 -2
- package/dist/{plugin-pages-RKJRHKNL.js.map → plugin-pages-RNB46YPQ.js.map} +1 -1
- package/dist/{root-JB3NZZNZ.js → root-4XPMKRHZ.js} +5 -5
- package/dist/{root-JB3NZZNZ.js.map → root-4XPMKRHZ.js.map} +1 -1
- package/dist/{root-RE3ZNXQ3.js → root-5RDJ2HAV.js} +2 -2
- package/dist/{root-RE3ZNXQ3.js.map → root-5RDJ2HAV.js.map} +1 -1
- package/dist/root-NCLIQPJA.js +23 -0
- package/dist/root-NCLIQPJA.js.map +1 -0
- package/dist/root-OHZDY47O.js +2 -0
- package/dist/{root-76YQTZUI.js.map → root-OHZDY47O.js.map} +1 -1
- package/dist/{search-WUO6VWKU.js → search-OWF3LEWH.js} +2 -2
- package/dist/{search-WUO6VWKU.js.map → search-OWF3LEWH.js.map} +1 -1
- package/dist/{skills-pages-POKCFHOL.js → skills-pages-VCXZFQFD.js} +2 -2
- package/dist/{skills-pages-POKCFHOL.js.map → skills-pages-VCXZFQFD.js.map} +1 -1
- package/dist/tanstack-start.js +1 -1
- package/package.json +11 -7
- package/dist/activity-nav-button-LZESIQL2.js +0 -2
- package/dist/chunk-6YOVF2AD.js +0 -384
- package/dist/chunk-6YOVF2AD.js.map +0 -1
- package/dist/chunk-ACS3TGGP.js +0 -2
- package/dist/chunk-ACS3TGGP.js.map +0 -1
- package/dist/chunk-HYSTMQD7.js +0 -2
- package/dist/chunk-HYSTMQD7.js.map +0 -1
- package/dist/list-DOTORSUC.js +0 -2
- package/dist/root-76YQTZUI.js +0 -2
- package/dist/root-A4VHAEK5.js +0 -23
- package/dist/root-A4VHAEK5.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import'./index.css';import {c as c$2,a}from'./chunk-KNESQOI5.js';import {s,m as m$1,K,d,u,v,w,y}from'./chunk-TOY7ZRK2.js';import {c}from'./chunk-P6BZ4QP7.js';import'./chunk-CAZ6EUR2.js';import'./chunk-V64P56OA.js';import'./chunk-2DXR5NJV.js';import {f}from'./chunk-CWJWOJRO.js';import'./chunk-TYDYAOQ7.js';import {N}from'./chunk-YCCFUGWJ.js';import {v as v$1}from'./chunk-32ZU4MLE.js';import'./chunk-HDOIOXMP.js';import {t}from'./chunk-SZEGGBOC.js';import'./chunk-U45E5X3H.js';import {b,c as c$1,e}from'./chunk-USNXQOMJ.js';import'./chunk-6NRQMG26.js';import'./chunk-O2QMYUPS.js';import {useState,useMemo,useCallback}from'react';import {useParams,useLocation,Outlet}from'react-router-dom';import {jsx,jsxs}from'react/jsx-runtime';var m=36,ct=[{_updatedAt:"DESC"},{_id:"DESC"}];function vt(){let{entity:t}=useParams(),{search:a}=useLocation(),g=new URLSearchParams(a).get("id"),{scope:j}=c(),{schemaErrorMessage:G}=s(),{currentProject:Q}=f(),h=Q?.schema??[],n=m$1(h,t??""),[r,S]=useState([]),[W,B]=useState(0),[O,F]=useState(t);t!==O&&(F(t),S([]));let k=K({attributesSchema:n?.attributes??[],actionsComponent:o=>ut({entityName:n?.name??"",entityNamePlural:t??"",row:o}),checkboxSelect:"multiple",enableColumnSorting:true}),f$1=useMemo(()=>{if(r.length===0)return ct;let o=r.map(({id:u,desc:it})=>({[u]:it?"DESC":"ASC"}));return o.some(u=>"_id"in u)?o:[...o,{_id:"DESC"}]},[r]),y$1=useMemo(()=>{if(r.length!==0)return d(f$1,n)},[n,f$1,r.length]),H=g?{where:{_id:{eq:g}}}:{offset:0,limit:m,sort:f$1,...y$1?{where:y$1}:{}},{isLoading:Y,isLoadingMore:Z,fetchMore:b$1,reload:C,count:i,data:l,isProjectDisabled:$}=u({entityNamePlural:t??"",schema:h,scope:j,variables:H,selection:"list"});function tt(o){S(o);}let N$1=l?.length??0,et=i>0&&N$1>0&&N$1<i,ot=useCallback(()=>{b$1({variables:{offset:0,limit:m}});},[b$1]),nt=useCallback(()=>{B(o=>o+1),C();},[C]),rt=Array(m).fill({}),at=pt(k),s$1=Y&&(l==null||l.length===0);return $?jsx("div",{className:"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3",children:jsx(v,{})}):jsxs("div",{className:"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3",children:[jsx(w,{}),jsxs("div",{className:"fk:flex fk:items-center fk:mb-4 fk:gap-2",children:[jsxs(b,{children:[jsx(c$1,{asChild:true,children:jsx(N,{className:"fk:-ml-1 fk:w-4 fk:h-4"})}),jsx(e,{children:"Toggle Sidebar"})]}),jsx(v$1,{orientation:"vertical",className:"fk:h-4"}),jsx("h2",{className:"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight",children:ft(n?.menu?.label??n?.plural??"")}),s$1?null:jsxs("span",{className:"fk:ml-auto fk:text-sm fk:font-normal fk:text-muted-foreground",children:[i.toLocaleString()," ",i===1?"record":"records"]})]}),G?null:jsx(y,{columns:s$1?at:k,data:s$1?rt:l??[],entityName:n?.name??"",hasMore:et,isLoadingMore:Z,pageSize:m,scrollToTopKey:W,sorting:r,onLoadMore:ot,onSortingChange:tt,toolbarComponent:o=>jsx(c$2,{entityName:n?.name??"",isReloading:s$1,onReload:nt,table:o})}),jsx(Outlet,{})]})}function ft(t){return t.charAt(0).toUpperCase()+t.slice(1)}function ut({entityName:t,entityNamePlural:a$1,row:d}){return jsx(a,{entityName:t,entityNamePlural:a$1,row:d})}function pt(t$1){return t$1.map(a=>({...a,cell:()=>jsx(t,{className:"fk:h-4 fk:w-full",style:{marginTop:"7px",marginBottom:"6px"}})}))}export{vt as List};//# sourceMappingURL=list-4NZLZRX3.js.map
|
|
2
|
+
//# sourceMappingURL=list-4NZLZRX3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/apps/desk/list.tsx"],"names":["pageSize","defaultSort","List","entityName","useParams","search","useLocation","entityId","scope","useAppContext","schemaErrorMessage","useGraphQLError","currentProject","useConfig","schema","entitySchema","getEntitySchema","sorting","setSorting","useState","scrollToTopKey","setScrollToTopKey","sortedEntityName","setSortedEntityName","columnsDefinition","useGridColumnsDefinition","row","dataRowActions","graphqlSort","useMemo","primarySort","id","desc","entry","sortNotNullWhere","getSortNotNullWhere","variables","isLoading","isLoadingMore","fetchMore","reload","count","data","isProjectDisabled","useEntityQuery","handleSortingChange","updater","rowsCount","hasMore","handleLoadMore","useCallback","handleReload","key","loadingData","loadingColumns","getLoadingColumns","isInitialLoading","jsx","ProjectDisabled","jsxs","SchemaError","Tooltip","TooltipTrigger","SidebarTrigger","TooltipContent","Separator","capitalize","DataTable","table","DataTableToolbar","Outlet","str","entityNamePlural","DataTableRowActions","columns","column","Skeleton"],"mappings":"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","file":"list-DOTORSUC.js","sourcesContent":["import { JSX, useCallback, useMemo, useState } from 'react';\nimport { useLocation, useParams, Outlet } from 'react-router-dom';\nimport type { ColumnDef, Row, SortingState, Updater } from '@tanstack/react-table';\nimport { getEntitySchema, getSortNotNullWhere } from '../../graphql-client/queries';\nimport { useAppContext } from '../../core/app-context';\nimport { useConfig } from '../../core/config/config-context';\nimport { useEntityQuery } from '../../graphql-client/use-entity-query';\nimport { useGraphQLError } from '../../graphql-client/graphql-context';\nimport { ProjectDisabled } from '../../core/error/project-disabled';\nimport { SchemaError } from '../../core/error/schema-error';\nimport { DataTable } from '../../data-grid/data-table';\nimport { DataTableRowActions } from '../../data-grid/data-table-row-actions';\nimport { DataTableToolbar } from '../../data-grid/data-table-toolbar';\nimport { useGridColumnsDefinition } from '../../data-grid/columns';\nimport type { AttributeValue } from '../../graphql-client/types';\nimport { Skeleton, SidebarTrigger, Separator, Tooltip, TooltipContent, TooltipTrigger } from '../../ui';\n\nconst pageSize = 36;\nconst defaultSort = [{ _updatedAt: 'DESC' }, { _id: 'DESC' }];\n\nexport function List(): JSX.Element {\n const { entity: entityName } = useParams();\n const { search } = useLocation();\n const query = new URLSearchParams(search);\n const entityId = query.get('id');\n const { scope } = useAppContext();\n const { schemaErrorMessage } = useGraphQLError();\n const { currentProject } = useConfig();\n const schema = currentProject?.schema ?? [];\n const entitySchema = getEntitySchema(schema, entityName ?? '');\n const [sorting, setSorting] = useState<SortingState>([]);\n const [scrollToTopKey, setScrollToTopKey] = useState(0);\n const [sortedEntityName, setSortedEntityName] = useState(entityName);\n\n if (entityName !== sortedEntityName) {\n setSortedEntityName(entityName);\n setSorting([]);\n }\n\n const columnsDefinition = useGridColumnsDefinition<AttributeValue, unknown>({\n attributesSchema: entitySchema?.attributes ?? [],\n actionsComponent: (row) =>\n dataRowActions({ entityName: entitySchema?.name ?? '', entityNamePlural: entityName ?? '', row }),\n checkboxSelect: 'multiple',\n enableColumnSorting: true,\n });\n\n const graphqlSort = useMemo(() => {\n if (sorting.length === 0) {\n return defaultSort;\n }\n\n const primarySort = sorting.map(({ id, desc }) => ({ [id]: desc ? 'DESC' : 'ASC' }));\n const hasIdSort = primarySort.some((entry) => '_id' in entry);\n\n if (hasIdSort) {\n return primarySort;\n }\n\n // Tie-break so offset pages stay stable when sort values collide.\n return [...primarySort, { _id: 'DESC' }];\n }, [sorting]);\n const sortNotNullWhere = useMemo(() => {\n if (sorting.length === 0) {\n return undefined;\n }\n\n return getSortNotNullWhere(graphqlSort, entitySchema);\n }, [entitySchema, graphqlSort, sorting.length]);\n\n const variables = entityId\n ? { where: { _id: { eq: entityId } } }\n : {\n offset: 0,\n limit: pageSize,\n sort: graphqlSort,\n ...(sortNotNullWhere ? { where: sortNotNullWhere } : {}),\n };\n\n const { isLoading, isLoadingMore, fetchMore, reload, count, data, isProjectDisabled } = useEntityQuery({\n entityNamePlural: entityName ?? '',\n schema,\n scope,\n variables,\n selection: 'list',\n });\n\n function handleSortingChange(updater: Updater<SortingState>): void {\n setSorting(updater);\n }\n\n const rowsCount = data?.length ?? 0;\n const hasMore = count > 0 && rowsCount > 0 && rowsCount < count;\n\n const handleLoadMore = useCallback(() => {\n fetchMore({\n variables: {\n // Offset is tracked inside useEntityQuery from page windows; value here is ignored.\n offset: 0,\n limit: pageSize,\n },\n });\n }, [fetchMore]);\n\n const handleReload = useCallback(() => {\n setScrollToTopKey((key) => key + 1);\n reload();\n }, [reload]);\n\n const loadingData = Array(pageSize).fill({});\n const loadingColumns = getLoadingColumns(columnsDefinition);\n const isInitialLoading = isLoading && (data == null || data.length === 0);\n\n if (isProjectDisabled) {\n return (\n <div className=\"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3\">\n <ProjectDisabled />\n </div>\n );\n }\n\n return (\n <div className=\"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3\">\n <SchemaError />\n <div className=\"fk:flex fk:items-center fk:mb-4 fk:gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <SidebarTrigger className=\"fk:-ml-1 fk:w-4 fk:h-4\" />\n </TooltipTrigger>\n <TooltipContent>Toggle Sidebar</TooltipContent>\n </Tooltip>\n <Separator orientation=\"vertical\" className=\"fk:h-4\" />\n <h2 className=\"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight\">\n {capitalize(entitySchema?.menu?.label ?? entitySchema?.plural ?? '')}\n </h2>\n {!isInitialLoading ? (\n <span className=\"fk:ml-auto fk:text-sm fk:font-normal fk:text-muted-foreground\">\n {count.toLocaleString()} {count === 1 ? 'record' : 'records'}\n </span>\n ) : null}\n </div>\n {!schemaErrorMessage ? (\n <DataTable\n columns={isInitialLoading ? loadingColumns : columnsDefinition}\n data={isInitialLoading ? loadingData : (data ?? [])}\n entityName={entitySchema?.name ?? ''}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n pageSize={pageSize}\n scrollToTopKey={scrollToTopKey}\n sorting={sorting}\n onLoadMore={handleLoadMore}\n onSortingChange={handleSortingChange}\n toolbarComponent={(table) => (\n <DataTableToolbar\n entityName={entitySchema?.name ?? ''}\n isReloading={isInitialLoading}\n onReload={handleReload}\n table={table}\n />\n )}\n />\n ) : null}\n <Outlet />\n </div>\n );\n}\n\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\ntype DataRowActions = {\n entityName: string;\n entityNamePlural: string;\n row: Row<AttributeValue>;\n};\n\nfunction dataRowActions({ entityName, entityNamePlural, row }: DataRowActions): JSX.Element {\n return <DataTableRowActions entityName={entityName} entityNamePlural={entityNamePlural} row={row} />;\n}\n\nfunction getLoadingColumns(columns: ColumnDef<AttributeValue, unknown>[]): ColumnDef<AttributeValue, unknown>[] {\n return columns.map((column) => ({\n ...column,\n cell: () => <Skeleton className=\"fk:h-4 fk:w-full\" style={{ marginTop: '7px', marginBottom: '6px' }} />,\n }));\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/apps/desk/list.tsx"],"names":["pageSize","defaultSort","List","entityName","useParams","search","useLocation","entityId","scope","useAppContext","schemaErrorMessage","useGraphQLError","currentProject","useConfig","schema","entitySchema","getEntitySchema","sorting","setSorting","useState","scrollToTopKey","setScrollToTopKey","sortedEntityName","setSortedEntityName","columnsDefinition","useGridColumnsDefinition","row","dataRowActions","graphqlSort","useMemo","primarySort","id","desc","entry","sortNotNullWhere","getSortNotNullWhere","variables","isLoading","isLoadingMore","fetchMore","reload","count","data","isProjectDisabled","useEntityQuery","handleSortingChange","updater","rowsCount","hasMore","handleLoadMore","useCallback","handleReload","key","loadingData","loadingColumns","getLoadingColumns","isInitialLoading","jsx","ProjectDisabled","jsxs","SchemaError","Tooltip","TooltipTrigger","SidebarTrigger","TooltipContent","Separator","capitalize","DataTable","table","DataTableToolbar","Outlet","str","entityNamePlural","DataTableRowActions","columns","column","Skeleton"],"mappings":"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","file":"list-4NZLZRX3.js","sourcesContent":["import { JSX, useCallback, useMemo, useState } from 'react';\nimport { useLocation, useParams, Outlet } from 'react-router-dom';\nimport type { ColumnDef, Row, SortingState, Updater } from '@tanstack/react-table';\nimport { getEntitySchema, getSortNotNullWhere } from '../../graphql-client/queries';\nimport { useAppContext } from '../../core/app-context';\nimport { useConfig } from '../../core/config/config-context';\nimport { useEntityQuery } from '../../graphql-client/use-entity-query';\nimport { useGraphQLError } from '../../graphql-client/graphql-context';\nimport { ProjectDisabled } from '../../core/error/project-disabled';\nimport { SchemaError } from '../../core/error/schema-error';\nimport { DataTable } from '../../data-grid/data-table';\nimport { DataTableRowActions } from '../../data-grid/data-table-row-actions';\nimport { DataTableToolbar } from '../../data-grid/data-table-toolbar';\nimport { useGridColumnsDefinition } from '../../data-grid/columns';\nimport type { AttributeValue } from '../../graphql-client/types';\nimport { Skeleton, SidebarTrigger, Separator, Tooltip, TooltipContent, TooltipTrigger } from '../../ui';\n\nconst pageSize = 36;\nconst defaultSort = [{ _updatedAt: 'DESC' }, { _id: 'DESC' }];\n\nexport function List(): JSX.Element {\n const { entity: entityName } = useParams();\n const { search } = useLocation();\n const query = new URLSearchParams(search);\n const entityId = query.get('id');\n const { scope } = useAppContext();\n const { schemaErrorMessage } = useGraphQLError();\n const { currentProject } = useConfig();\n const schema = currentProject?.schema ?? [];\n const entitySchema = getEntitySchema(schema, entityName ?? '');\n const [sorting, setSorting] = useState<SortingState>([]);\n const [scrollToTopKey, setScrollToTopKey] = useState(0);\n const [sortedEntityName, setSortedEntityName] = useState(entityName);\n\n if (entityName !== sortedEntityName) {\n setSortedEntityName(entityName);\n setSorting([]);\n }\n\n const columnsDefinition = useGridColumnsDefinition<AttributeValue, unknown>({\n attributesSchema: entitySchema?.attributes ?? [],\n actionsComponent: (row) =>\n dataRowActions({ entityName: entitySchema?.name ?? '', entityNamePlural: entityName ?? '', row }),\n checkboxSelect: 'multiple',\n enableColumnSorting: true,\n });\n\n const graphqlSort = useMemo(() => {\n if (sorting.length === 0) {\n return defaultSort;\n }\n\n const primarySort = sorting.map(({ id, desc }) => ({ [id]: desc ? 'DESC' : 'ASC' }));\n const hasIdSort = primarySort.some((entry) => '_id' in entry);\n\n if (hasIdSort) {\n return primarySort;\n }\n\n // Tie-break so offset pages stay stable when sort values collide.\n return [...primarySort, { _id: 'DESC' }];\n }, [sorting]);\n const sortNotNullWhere = useMemo(() => {\n if (sorting.length === 0) {\n return undefined;\n }\n\n return getSortNotNullWhere(graphqlSort, entitySchema);\n }, [entitySchema, graphqlSort, sorting.length]);\n\n const variables = entityId\n ? { where: { _id: { eq: entityId } } }\n : {\n offset: 0,\n limit: pageSize,\n sort: graphqlSort,\n ...(sortNotNullWhere ? { where: sortNotNullWhere } : {}),\n };\n\n const { isLoading, isLoadingMore, fetchMore, reload, count, data, isProjectDisabled } = useEntityQuery({\n entityNamePlural: entityName ?? '',\n schema,\n scope,\n variables,\n selection: 'list',\n });\n\n function handleSortingChange(updater: Updater<SortingState>): void {\n setSorting(updater);\n }\n\n const rowsCount = data?.length ?? 0;\n const hasMore = count > 0 && rowsCount > 0 && rowsCount < count;\n\n const handleLoadMore = useCallback(() => {\n fetchMore({\n variables: {\n // Offset is tracked inside useEntityQuery from page windows; value here is ignored.\n offset: 0,\n limit: pageSize,\n },\n });\n }, [fetchMore]);\n\n const handleReload = useCallback(() => {\n setScrollToTopKey((key) => key + 1);\n reload();\n }, [reload]);\n\n const loadingData = Array(pageSize).fill({});\n const loadingColumns = getLoadingColumns(columnsDefinition);\n const isInitialLoading = isLoading && (data == null || data.length === 0);\n\n if (isProjectDisabled) {\n return (\n <div className=\"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3\">\n <ProjectDisabled />\n </div>\n );\n }\n\n return (\n <div className=\"fk:flex fk:flex-col fk:h-full fk:px-4 fk:pt-3\">\n <SchemaError />\n <div className=\"fk:flex fk:items-center fk:mb-4 fk:gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <SidebarTrigger className=\"fk:-ml-1 fk:w-4 fk:h-4\" />\n </TooltipTrigger>\n <TooltipContent>Toggle Sidebar</TooltipContent>\n </Tooltip>\n <Separator orientation=\"vertical\" className=\"fk:h-4\" />\n <h2 className=\"fk:text-lg fk:font-semibold fk:leading-none fk:tracking-tight\">\n {capitalize(entitySchema?.menu?.label ?? entitySchema?.plural ?? '')}\n </h2>\n {!isInitialLoading ? (\n <span className=\"fk:ml-auto fk:text-sm fk:font-normal fk:text-muted-foreground\">\n {count.toLocaleString()} {count === 1 ? 'record' : 'records'}\n </span>\n ) : null}\n </div>\n {!schemaErrorMessage ? (\n <DataTable\n columns={isInitialLoading ? loadingColumns : columnsDefinition}\n data={isInitialLoading ? loadingData : (data ?? [])}\n entityName={entitySchema?.name ?? ''}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n pageSize={pageSize}\n scrollToTopKey={scrollToTopKey}\n sorting={sorting}\n onLoadMore={handleLoadMore}\n onSortingChange={handleSortingChange}\n toolbarComponent={(table) => (\n <DataTableToolbar\n entityName={entitySchema?.name ?? ''}\n isReloading={isInitialLoading}\n onReload={handleReload}\n table={table}\n />\n )}\n />\n ) : null}\n <Outlet />\n </div>\n );\n}\n\nfunction capitalize(str: string): string {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\ntype DataRowActions = {\n entityName: string;\n entityNamePlural: string;\n row: Row<AttributeValue>;\n};\n\nfunction dataRowActions({ entityName, entityNamePlural, row }: DataRowActions): JSX.Element {\n return <DataTableRowActions entityName={entityName} entityNamePlural={entityNamePlural} row={row} />;\n}\n\nfunction getLoadingColumns(columns: ColumnDef<AttributeValue, unknown>[]): ColumnDef<AttributeValue, unknown>[] {\n return columns.map((column) => ({\n ...column,\n cell: () => <Skeleton className=\"fk:h-4 fk:w-full\" style={{ marginTop: '7px', marginBottom: '6px' }} />,\n }));\n}\n"]}
|