Skip to content

Commit

Permalink
[front/components] - refactor: streamline handling of query parameter…
Browse files Browse the repository at this point in the history
…s in modals

- Replaced `useRouter` with `useQueryParams` hook for consistent query parameter management across modals
- Removed `useState` and `useEffect` hooks in favor of direct query parameter access, simplifying state management
- Added `onClose` handler to clean up query parameters when the document modal is closed
- Ensured proper handling of modal open state based on the query parameters to synchronize the UI with the URL state
  • Loading branch information
JulesBelveze committed Mar 6, 2025
1 parent cf4f224 commit fe5ac53
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 20 deletions.
42 changes: 23 additions & 19 deletions front/components/DataSourceViewDocumentModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,9 @@ import {
} from "@dust-tt/sparkle";
import type { DataSourceViewType, LightWorkspaceType } from "@dust-tt/types";
import { DocumentViewRawContentKey } from "@dust-tt/types";
import { useRouter } from "next/router";
import { useEffect, useMemo, useState } from "react";
import { useMemo } from "react";

import { useURLSheet } from "@app/hooks/useURLSheet";
import { useQueryParams } from "@app/hooks/useQueryParams";
import { useDataSourceViewDocument } from "@app/lib/swr/data_source_view_documents";

export default function DataSourceViewDocumentModal({
Expand All @@ -21,29 +20,20 @@ export default function DataSourceViewDocumentModal({
dataSourceView: DataSourceViewType | null;
owner: LightWorkspaceType;
}) {
const router = useRouter();
const { isOpen, onOpenChange } = useURLSheet(DocumentViewRawContentKey);
const [documentId, setDocumentId] = useState<string | null>(null);

// Get documentId from URL when sheet is open
useEffect(() => {
if (router.isReady && isOpen) {
setDocumentId(router.query.documentId as string);
} else if (!isOpen) {
setDocumentId(null);
}
}, [router.isReady, router.query, isOpen]);
const params = useQueryParams([DocumentViewRawContentKey, "documentId"]);
const isOpen = params[DocumentViewRawContentKey].value === "true";

const { document, isDocumentLoading, isDocumentError } =
useDataSourceViewDocument({
documentId,
documentId: params.documentId.value ?? null,
dataSourceView,
owner,
disabled: !params.documentId.value,
});

const { title, text } = useMemo(() => {
if (!document) {
return { title: documentId ?? undefined, text: undefined };
return { title: params.documentId.value ?? undefined, text: undefined };
}

const titleTag = document.tags.find((tag: string) =>
Expand All @@ -54,10 +44,24 @@ export default function DataSourceViewDocumentModal({
title: titleTag ? titleTag.split("title:")[1] : undefined,
text: document.text,
};
}, [document, documentId]);
}, [document, params.documentId.value]);

const onClose = () => {
params.setParams({
documentId: undefined,
[DocumentViewRawContentKey]: undefined,
});
};

return (
<Sheet open={isOpen} onOpenChange={onOpenChange}>
<Sheet
open={isOpen}
onOpenChange={(open) => {
if (!open) {
onClose();
}
}}
>
<SheetContent size="xl">
<SheetHeader>
<SheetTitle>{title}</SheetTitle>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export const DocumentOrTableDeleteDialog = ({
"viewType",
DocumentDeletionKey,
]);
const isOpen = params[DocumentDeletionKey]?.value === "true";
const isOpen = params[DocumentDeletionKey].value === "true";

const sendNotification = useSendNotification();

Expand Down

0 comments on commit fe5ac53

Please sign in to comment.