From 7c6794a9bdc8271908ee786aac90a03068aca536 Mon Sep 17 00:00:00 2001 From: Jonathan Summers-Muir Date: Mon, 25 Nov 2024 19:15:45 +0800 Subject: [PATCH] preview style works in sql editor --- .../layouts/SQLEditorLayout/SQLEditorMenu.tsx | 4 +-- .../SQLEditorNavV2/SQLEditorNav.tsx | 29 ++++++++++++++++--- .../SQLEditorNavV2/SQLEditorTreeViewItem.tsx | 3 +- .../ui/src/components/TreeView/TreeView.tsx | 7 +++-- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx index ceae19a2321..53d4c5d4b0e 100644 --- a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx +++ b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx @@ -124,7 +124,7 @@ export const SQLEditorMenu = ({ onViewOngoingQueries }: SQLEditorMenuProps) => { -
+ {/*
{ > Quickstarts -
+
*/} diff --git a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorNav.tsx b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorNav.tsx index 975cd3aadee..d8f8f809fb9 100644 --- a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorNav.tsx +++ b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorNav.tsx @@ -57,6 +57,7 @@ export const SQLEditorNav = ({ searchText: _searchText }: SQLEditorNavProps) => const { ref: projectRef, id } = useParams() const snapV2 = useSqlEditorV2StateSnapshot() const [sort] = useLocalStorage<'name' | 'inserted_at'>('sql-editor-sort', 'inserted_at') + const tabStore = getTabsStore(projectRef) const [mountedId, setMountedId] = useState(false) const [showMoveModal, setShowMoveModal] = useState(false) @@ -338,7 +339,6 @@ export const SQLEditorNav = ({ searchText: _searchText }: SQLEditorNavProps) => return ( <> - {((numProjectSnippets === 0 && searchText.length === 0) || numProjectSnippets > 0) && ( <> const isOpened = Object.values(tabs.tabsMap).some( (tab) => tab.metadata?.sqlId === element.metadata?.id ) + const tabId = createTabId('sql', { + id: element?.metadata?.id as unknown as Snippet['id'], + }) + const isPreview = tabStore.previewTabId === tabId + const isActive = !isPreview && element.metadata?.id === id return ( { setShowDeleteModal(true) @@ -435,10 +442,17 @@ export const SQLEditorNav = ({ searchText: _searchText }: SQLEditorNavProps) => const isOpened = Object.values(tabs.tabsMap).some( (tab) => tab.metadata?.sqlId === element.metadata?.id ) + const tabId = createTabId('sql', { + id: element?.metadata?.id as unknown as Snippet['id'], + }) + const isPreview = tabStore.previewTabId === tabId + const isActive = !isPreview && element.metadata?.id === id return ( { setShowDeleteModal(true) @@ -528,13 +542,20 @@ export const SQLEditorNav = ({ searchText: _searchText }: SQLEditorNavProps) => const isOpened = Object.values(tabs.tabsMap).some( (tab) => tab.metadata?.sqlId === element.metadata?.id ) + const tabId = createTabId('sql', { + id: element?.metadata?.id as unknown as Snippet['id'], + }) + const isPreview = tabStore.previewTabId === tabId + const isActive = !isPreview && element.metadata?.id === id return ( 1} - isOpened={isOpened} + isOpened={isOpened && !isPreview} + isSelected={isActive} + isPreview={isPreview} status={props.isBranch ? snapV2.folders[element.id].status : 'idle'} onMultiSelect={onMultiSelect} onSelectCreate={() => { diff --git a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorTreeViewItem.tsx b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorTreeViewItem.tsx index 17d59b94fd0..0b2b039e805 100644 --- a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorTreeViewItem.tsx +++ b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/SQLEditorTreeViewItem.tsx @@ -104,7 +104,8 @@ export const SQLEditorTreeViewItem = ({ level={level} isExpanded={isExpanded} isBranch={isBranch} - isSelected={isSelected || id === element.id} + isSelected={isSelected} + isPreview={props.isPreview} isEditing={isEditing} isLoading={isFetching || isSaving} onEditSubmit={(value) => { diff --git a/packages/ui/src/components/TreeView/TreeView.tsx b/packages/ui/src/components/TreeView/TreeView.tsx index 15bf0d427ce..5b2f5159b34 100644 --- a/packages/ui/src/components/TreeView/TreeView.tsx +++ b/packages/ui/src/components/TreeView/TreeView.tsx @@ -25,7 +25,7 @@ export const TreeViewItemVariant = cva( false: '', }, isPreview: { - true: 'bg-control', + true: 'bg-control text-foreground', false: '', }, }, @@ -41,6 +41,8 @@ const TreeViewItem = forwardRef< isExpanded?: boolean /** Specifies if the item is opened somewhere */ isOpened?: boolean + /** Specifies if the item is a preview */ + isPreview?: boolean /** Specifies if the item is a branch */ isBranch?: boolean /** The padding for each level of the item */ @@ -69,6 +71,7 @@ const TreeViewItem = forwardRef< isOpened = false, isBranch = false, isSelected = false, + isPreview = false, isLoading = false, xPadding = 16, name = '', @@ -119,7 +122,7 @@ const TreeViewItem = forwardRef< aria-selected={isSelected} aria-expanded={!isEditing && isExpanded} {...props} - className={cn(TreeViewItemVariant({ isSelected, isOpened }))} + className={cn(TreeViewItemVariant({ isSelected, isOpened, isPreview }))} style={{ paddingLeft: level === 1 && !isBranch