mirror of https://github.com/buster-so/buster.git
Merge pull request #1249 from buster-so/nate/permission-chat-check
update error handling
This commit is contained in:
commit
1358d09540
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://biomejs.dev/schemas/2.2.4/schema.json",
|
"$schema": "https://biomejs.dev/schemas/2.2.5/schema.json",
|
||||||
"extends": ["../../biome2.json"],
|
"extends": ["../../biome2.json"],
|
||||||
"files": {
|
"files": {
|
||||||
"includes": ["!**/routeTree.gen.ts", "!.vercel", "!.nitro", "!.storybook"]
|
"includes": ["!**/routeTree.gen.ts", "!.vercel", "!.nitro", "!.storybook"]
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
"@dnd-kit/sortable": "^10.0.0",
|
"@dnd-kit/sortable": "^10.0.0",
|
||||||
"@dnd-kit/utilities": "^3.2.2",
|
"@dnd-kit/utilities": "^3.2.2",
|
||||||
"@electric-sql/client": "catalog:",
|
"@electric-sql/client": "catalog:",
|
||||||
"@electric-sql/react": "^1.0.10",
|
"@electric-sql/react": "catalog:",
|
||||||
"@emoji-mart/data": "^1.2.1",
|
"@emoji-mart/data": "^1.2.1",
|
||||||
"@faker-js/faker": "^10.0.0",
|
"@faker-js/faker": "^10.0.0",
|
||||||
"@monaco-editor/react": "^4.7.0",
|
"@monaco-editor/react": "^4.7.0",
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
"@tanstack/match-sorter-utils": "^8.19.4",
|
"@tanstack/match-sorter-utils": "^8.19.4",
|
||||||
"@tanstack/query-db-collection": "0.2.24",
|
"@tanstack/query-db-collection": "0.2.24",
|
||||||
"@tanstack/react-db": "0.1.25",
|
"@tanstack/react-db": "0.1.25",
|
||||||
"@tanstack/react-devtools": "^0.7.0",
|
"@tanstack/react-devtools": "^0.7.1",
|
||||||
"@tanstack/react-form": "^1.23.5",
|
"@tanstack/react-form": "^1.23.5",
|
||||||
"@tanstack/react-query": "^5.90.2",
|
"@tanstack/react-query": "^5.90.2",
|
||||||
"@tanstack/react-query-devtools": "^5.90.2",
|
"@tanstack/react-query-devtools": "^5.90.2",
|
||||||
|
@ -117,7 +117,7 @@
|
||||||
"@tanstack/react-virtual": "^3.13.12",
|
"@tanstack/react-virtual": "^3.13.12",
|
||||||
"@tanstack/router-plugin": "^1.131.50",
|
"@tanstack/router-plugin": "^1.131.50",
|
||||||
"@tanstack/store": "^0.7.7",
|
"@tanstack/store": "^0.7.7",
|
||||||
"@testing-library/jest-dom": "^6.9.0",
|
"@testing-library/jest-dom": "^6.9.1",
|
||||||
"@tiptap/core": "^3.6.2",
|
"@tiptap/core": "^3.6.2",
|
||||||
"@tiptap/extension-document": "^3.6.2",
|
"@tiptap/extension-document": "^3.6.2",
|
||||||
"@tiptap/extension-mention": "^3.6.2",
|
"@tiptap/extension-mention": "^3.6.2",
|
||||||
|
@ -158,7 +158,7 @@
|
||||||
"mutative": "^1.3.0",
|
"mutative": "^1.3.0",
|
||||||
"platejs": "49.2.21",
|
"platejs": "49.2.21",
|
||||||
"pluralize": "^8.0.0",
|
"pluralize": "^8.0.0",
|
||||||
"posthog-js": "^1.268.9",
|
"posthog-js": "^1.269.1",
|
||||||
"qs": "^6.14.0",
|
"qs": "^6.14.0",
|
||||||
"react": "catalog:",
|
"react": "catalog:",
|
||||||
"react-colorful": "^5.6.1",
|
"react-colorful": "^5.6.1",
|
||||||
|
@ -175,7 +175,7 @@
|
||||||
"react-speech-recognition": "^4.0.1",
|
"react-speech-recognition": "^4.0.1",
|
||||||
"react-textarea-autosize": "^8.5.9",
|
"react-textarea-autosize": "^8.5.9",
|
||||||
"remark-gfm": "^4.0.1",
|
"remark-gfm": "^4.0.1",
|
||||||
"scheduler": "^0.26.0",
|
"scheduler": "^0.27.0",
|
||||||
"shiki": "^3.13.0",
|
"shiki": "^3.13.0",
|
||||||
"sonner": "^2.0.7",
|
"sonner": "^2.0.7",
|
||||||
"tailwind-merge": "^3.3.1",
|
"tailwind-merge": "^3.3.1",
|
||||||
|
@ -187,18 +187,18 @@
|
||||||
"use-file-picker": "^2.1.4",
|
"use-file-picker": "^2.1.4",
|
||||||
"utility-types": "^3.11.0",
|
"utility-types": "^3.11.0",
|
||||||
"uuid": "catalog:",
|
"uuid": "catalog:",
|
||||||
"virtua": "^0.43.6",
|
"virtua": "^0.44.0",
|
||||||
"vite-tsconfig-paths": "^5.1.4",
|
"vite-tsconfig-paths": "^5.1.4",
|
||||||
"vitest-browser-react": "^1.0.1",
|
"vitest-browser-react": "^1.0.1",
|
||||||
"zod": "catalog:"
|
"zod": "catalog:"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "2.2.4",
|
"@biomejs/biome": "2.2.5",
|
||||||
"@chromatic-com/storybook": "^4.1.1",
|
"@chromatic-com/storybook": "^4.1.1",
|
||||||
"@storybook/addon-a11y": "^9.1.9",
|
"@storybook/addon-a11y": "^9.1.10",
|
||||||
"@storybook/addon-docs": "^9.1.9",
|
"@storybook/addon-docs": "^9.1.10",
|
||||||
"@storybook/addon-vitest": "^9.1.9",
|
"@storybook/addon-vitest": "^9.1.10",
|
||||||
"@storybook/react-vite": "^9.1.9",
|
"@storybook/react-vite": "^9.1.10",
|
||||||
"@tanstack/devtools-event-client": "^0.3.2",
|
"@tanstack/devtools-event-client": "^0.3.2",
|
||||||
"@tanstack/router-cli": "^1.131.50",
|
"@tanstack/router-cli": "^1.131.50",
|
||||||
"@testing-library/dom": "^10.4.1",
|
"@testing-library/dom": "^10.4.1",
|
||||||
|
|
|
@ -2,6 +2,7 @@ import {
|
||||||
type BackoffOptions,
|
type BackoffOptions,
|
||||||
type ChangeMessage,
|
type ChangeMessage,
|
||||||
isChangeMessage,
|
isChangeMessage,
|
||||||
|
type MaybePromise,
|
||||||
type Message,
|
type Message,
|
||||||
type Row,
|
type Row,
|
||||||
} from '@electric-sql/client';
|
} from '@electric-sql/client';
|
||||||
|
@ -83,9 +84,9 @@ export const useShapeStream = <T extends Row<unknown> = Row<unknown>>(
|
||||||
|
|
||||||
let hasSyncedInitial = false;
|
let hasSyncedInitial = false;
|
||||||
|
|
||||||
const handler = (messages: Message<T>[]) => {
|
const handler: Parameters<typeof stream.subscribe>[0] = (messages) => {
|
||||||
for (const m of messages) {
|
for (const m of messages) {
|
||||||
if (m.headers.control === 'up-to-date') {
|
if (m.headers.control === 'up-to-date' || m.headers.control === 'snapshot-end') {
|
||||||
hasSyncedInitial = true;
|
hasSyncedInitial = true;
|
||||||
} else if (
|
} else if (
|
||||||
hasSyncedInitial &&
|
hasSyncedInitial &&
|
||||||
|
|
|
@ -74,6 +74,7 @@ export const useGetMetric = <TData = BusterMetric>(
|
||||||
params?: Omit<UseQueryOptions<BusterMetric, ApiError, TData>, 'queryKey' | 'queryFn'>
|
params?: Omit<UseQueryOptions<BusterMetric, ApiError, TData>, 'queryKey' | 'queryFn'>
|
||||||
) => {
|
) => {
|
||||||
const queryClient = useQueryClient();
|
const queryClient = useQueryClient();
|
||||||
|
const query = metricsQueryKeys.metricsGetMetric(id || '', 'LATEST');
|
||||||
const password = useProtectedAssetPassword(id || '');
|
const password = useProtectedAssetPassword(id || '');
|
||||||
|
|
||||||
const { selectedVersionNumber, latestVersionNumber } = useGetMetricVersionNumber(
|
const { selectedVersionNumber, latestVersionNumber } = useGetMetricVersionNumber(
|
||||||
|
@ -82,7 +83,7 @@ export const useGetMetric = <TData = BusterMetric>(
|
||||||
);
|
);
|
||||||
|
|
||||||
const { isFetched: isFetchedInitial, isError: isErrorInitial } = useQuery({
|
const { isFetched: isFetchedInitial, isError: isErrorInitial } = useQuery({
|
||||||
...metricsQueryKeys.metricsGetMetric(id || '', 'LATEST'),
|
...query,
|
||||||
queryFn: () => {
|
queryFn: () => {
|
||||||
return getMetricQueryFn({ id, version: 'LATEST', queryClient, password });
|
return getMetricQueryFn({ id, version: 'LATEST', queryClient, password });
|
||||||
},
|
},
|
||||||
|
@ -125,19 +126,21 @@ export const prefetchGetMetric = async (
|
||||||
params: Parameters<typeof getMetric>[0]
|
params: Parameters<typeof getMetric>[0]
|
||||||
): Promise<BusterMetric | undefined> => {
|
): Promise<BusterMetric | undefined> => {
|
||||||
const { id, version_number } = params;
|
const { id, version_number } = params;
|
||||||
const queryKey = metricsQueryKeys.metricsGetMetric(id, version_number || 'LATEST')?.queryKey;
|
const query = metricsQueryKeys.metricsGetMetric(id, version_number || 'LATEST');
|
||||||
|
const queryKey = query?.queryKey;
|
||||||
const existingData = queryClient.getQueryData(queryKey);
|
const existingData = queryClient.getQueryData(queryKey);
|
||||||
|
|
||||||
if (!existingData && id) {
|
if (!existingData && id) {
|
||||||
await queryClient.prefetchQuery({
|
await queryClient.prefetchQuery({
|
||||||
...metricsQueryKeys.metricsGetMetric(id, version_number || 'LATEST'),
|
...query,
|
||||||
queryFn: () =>
|
queryFn: () => {
|
||||||
getMetricQueryFn({
|
return getMetricQueryFn({
|
||||||
id,
|
id,
|
||||||
version: params.version_number,
|
version: params.version_number,
|
||||||
queryClient,
|
queryClient,
|
||||||
password: undefined,
|
password: undefined,
|
||||||
}),
|
});
|
||||||
|
},
|
||||||
retry: silenceAssetErrors,
|
retry: silenceAssetErrors,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,10 +21,10 @@ export const getAssetAccess = (
|
||||||
error: ApiError | null,
|
error: ApiError | null,
|
||||||
isFetched: boolean,
|
isFetched: boolean,
|
||||||
selectedQuery: QueryKey,
|
selectedQuery: QueryKey,
|
||||||
_hasData: boolean
|
hasData: boolean
|
||||||
): AssetAccess => {
|
): AssetAccess => {
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('Error in getAssetAccess', error, isFetched, selectedQuery);
|
console.error('Error in getAssetAccess', error, isFetched, selectedQuery, hasData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 418 is password required
|
// 418 is password required
|
||||||
|
@ -66,7 +66,7 @@ export const getAssetAccess = (
|
||||||
passwordRequired: false,
|
passwordRequired: false,
|
||||||
isPublic: false,
|
isPublic: false,
|
||||||
isDeleted: false,
|
isDeleted: false,
|
||||||
isFetched: isFetched,
|
isFetched,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,8 +95,6 @@ export const useGetAssetPasswordConfig = (
|
||||||
queryKey: selectedQuery.queryKey,
|
queryKey: selectedQuery.queryKey,
|
||||||
enabled: true,
|
enabled: true,
|
||||||
select: (v: unknown) => !!v,
|
select: (v: unknown) => !!v,
|
||||||
retry: false,
|
|
||||||
initialData: false,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return getAssetAccess(error, isFetched, selectedQuery.queryKey, !!data);
|
return getAssetAccess(error, isFetched, selectedQuery.queryKey, !!data);
|
||||||
|
|
502
pnpm-lock.yaml
502
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
@ -12,7 +12,8 @@ packages:
|
||||||
catalog:
|
catalog:
|
||||||
'@aws-sdk/client-s3': ^3.888.0
|
'@aws-sdk/client-s3': ^3.888.0
|
||||||
'@aws-sdk/s3-request-presigner': ^3.888.0
|
'@aws-sdk/s3-request-presigner': ^3.888.0
|
||||||
'@electric-sql/client': ^1.0.10
|
'@electric-sql/client': ^1.0.12
|
||||||
|
'@electric-sql/react': ^1.0.12
|
||||||
'@supabase/supabase-js': ^2.57.4
|
'@supabase/supabase-js': ^2.57.4
|
||||||
'@trigger.dev/build': ^4.0.2
|
'@trigger.dev/build': ^4.0.2
|
||||||
'@trigger.dev/sdk': ^4.0.2
|
'@trigger.dev/sdk': ^4.0.2
|
||||||
|
|
Loading…
Reference in New Issue