From b4d38fabd04a3bcbbeddf538f59308e91fbae1c5 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Fri, 31 Oct 2025 13:15:31 +0800 Subject: [PATCH] Chore/barrel files bye part 05 (#40016) * Clean up barrel files part 4 * nit * Part 5 of cleaning up barrel files * Revert changes for types * Nit --- .../PolicyEditor/PolicyDefinition.tsx | 4 +- .../Publications/PublicationsTables.tsx | 5 +- .../HomeNew/CustomReportSection.tsx | 2 +- .../Integrations/GraphQL/GraphiQLTab.tsx | 4 +- .../interfaces/Reports/GridResize.tsx | 2 +- .../interfaces/Reports/MetricOptions.tsx | 2 +- .../Reports/ReportBlock/ChartBlock.tsx | 2 +- .../components/interfaces/Reports/Reports.tsx | 7 +- .../UtilityPanel/SavingIndicator.tsx | 2 +- .../Settings/Logs/RecentQueriesItem.tsx | 5 +- .../UnifiedLogs/ServiceFlowPanel.tsx | 5 +- .../layouts/ProjectLayout/index.tsx | 7 +- .../layouts/ReportsLayout/ReportMenuItem.tsx | 2 +- .../SQLEditorNavV2/ShareSnippetModal.tsx | 2 +- .../SQLEditorNavV2/UnshareSnippetModal.tsx | 7 +- .../to-be-cleaned/TooltipListener.tsx | 80 ------------------- .../components/ui/CodeEditor/CodeEditor.tsx | 5 +- apps/studio/components/ui/Loading/index.ts | 1 - apps/studio/components/ui/SqlEditor.tsx | 3 +- .../content-api/docs-error-codes-query.ts | 2 +- .../data/database/database-query-constants.ts | 3 - .../data/database/entity-definitions-query.ts | 2 +- .../data/database/table-definition-query.ts | 2 +- apps/studio/data/graphql/index.ts | 2 - apps/studio/data/logs/index.ts | 12 --- apps/studio/hooks/deprecated.ts | 12 --- apps/studio/hooks/misc/useCheckPermissions.ts | 4 +- apps/studio/hooks/misc/withAuth.tsx | 5 +- apps/studio/lib/auth.tsx | 8 +- apps/studio/pages/_app.tsx | 2 +- .../pages/aws-marketplace-onboarding.tsx | 3 +- apps/studio/pages/cli/login.tsx | 18 ++--- apps/studio/pages/forgot-password-mfa.tsx | 4 +- .../pages/integrations/vercel/install.tsx | 2 +- apps/studio/pages/join.tsx | 2 +- apps/studio/pages/logout.tsx | 6 +- apps/studio/pages/org/[slug]/audit.tsx | 6 +- apps/studio/pages/org/[slug]/general.tsx | 4 +- apps/studio/pages/org/[slug]/team.tsx | 8 +- apps/studio/pages/organizations.tsx | 2 +- .../[ref]/advisors/rules/performance.tsx | 2 +- .../project/[ref]/advisors/rules/security.tsx | 2 +- .../pages/project/[ref]/auth/overview.tsx | 18 ++--- .../pages/project/[ref]/auth/policies.tsx | 6 +- .../project/[ref]/database/functions.tsx | 4 +- .../pages/project/[ref]/database/schemas.tsx | 2 +- .../pages/project/[ref]/database/triggers.tsx | 4 +- .../[id]/[pageId]/[childId]/index.tsx | 2 +- .../integrations/[id]/[pageId]/index.tsx | 2 +- .../project/[ref]/integrations/[id]/index.tsx | 3 +- .../pages/project/[ref]/logs/cron-logs.tsx | 4 +- .../[ref]/logs/dedicated-pooler-logs.tsx | 4 +- .../[ref]/logs/edge-functions-logs.tsx | 2 +- .../pages/project/[ref]/logs/edge-logs.tsx | 2 +- .../[ref]/logs/etl-replication-logs.tsx | 4 +- .../project/[ref]/logs/explorer/recent.tsx | 4 +- .../project/[ref]/logs/explorer/saved.tsx | 2 +- .../studio/pages/project/[ref]/logs/index.tsx | 2 +- .../pages/project/[ref]/logs/pgcron-logs.tsx | 2 +- .../pages/project/[ref]/logs/pooler-logs.tsx | 4 +- .../project/[ref]/logs/postgres-logs.tsx | 4 +- .../project/[ref]/logs/postgrest-logs.tsx | 4 +- .../project/[ref]/logs/realtime-logs.tsx | 2 +- .../pages/project/[ref]/logs/storage-logs.tsx | 2 +- .../project/[ref]/reports/api-overview.tsx | 2 +- .../pages/project/[ref]/reports/auth.tsx | 30 +++---- .../project/[ref]/reports/edge-functions.tsx | 2 +- .../pages/project/[ref]/reports/index.tsx | 4 +- .../pages/project/[ref]/reports/postgrest.tsx | 26 +++--- .../[ref]/reports/query-performance.tsx | 16 ++-- .../pages/project/[ref]/settings/general.tsx | 4 +- apps/studio/pages/project/[ref]/sql/[id].tsx | 2 +- apps/studio/pages/sign-in-mfa.tsx | 4 +- apps/studio/pages/support/new.tsx | 2 +- apps/studio/state/sql-editor-v2.ts | 2 +- 75 files changed, 168 insertions(+), 269 deletions(-) delete mode 100644 apps/studio/components/to-be-cleaned/TooltipListener.tsx delete mode 100644 apps/studio/components/ui/Loading/index.ts delete mode 100644 apps/studio/data/graphql/index.ts delete mode 100644 apps/studio/data/logs/index.ts delete mode 100644 apps/studio/hooks/deprecated.ts diff --git a/apps/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx b/apps/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx index f695fb6717a..25a12759699 100644 --- a/apps/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx +++ b/apps/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx @@ -1,9 +1,9 @@ +import { usePrevious } from '@uidotdev/usehooks' import { noop } from 'lodash' +import { HelpCircle } from 'lucide-react' import { useEffect } from 'react' import SqlEditor from 'components/ui/SqlEditor' -import { usePrevious } from 'hooks/deprecated' -import { HelpCircle } from 'lucide-react' import { Tooltip, TooltipContent, TooltipTrigger } from 'ui' interface PolicyDefinitionProps { diff --git a/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx b/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx index 48931a50560..d3e77df1c63 100644 --- a/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx +++ b/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx @@ -7,12 +7,11 @@ import { useParams } from 'common' import NoSearchResults from 'components/to-be-cleaned/NoSearchResults' import AlertError from 'components/ui/AlertError' import { ButtonTooltip } from 'components/ui/ButtonTooltip' -import { Loading } from 'components/ui/Loading' import { useDatabasePublicationsQuery } from 'data/database-publications/database-publications-query' import { useTablesQuery } from 'data/tables/tables-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import { Card, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from 'ui' +import { Card, LogoLoader, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from 'ui' import { Admonition } from 'ui-patterns' import { Input } from 'ui-patterns/DataInputs/Input' import { PublicationsTableItem } from './PublicationsTableItem' @@ -87,7 +86,7 @@ export const PublicationsTables = () => { {(isLoading || isLoadingPermissions) && (
- +
)} diff --git a/apps/studio/components/interfaces/HomeNew/CustomReportSection.tsx b/apps/studio/components/interfaces/HomeNew/CustomReportSection.tsx index 62e4c9fb4f5..601c04fadf3 100644 --- a/apps/studio/components/interfaces/HomeNew/CustomReportSection.tsx +++ b/apps/studio/components/interfaces/HomeNew/CustomReportSection.tsx @@ -9,8 +9,8 @@ import { import { SortableContext, arrayMove, rectSortingStrategy, useSortable } from '@dnd-kit/sortable' import { PermissionAction } from '@supabase/shared-types/out/constants' import dayjs from 'dayjs' -import type { CSSProperties, DragEvent, ReactNode } from 'react' import { Plus, RefreshCw } from 'lucide-react' +import type { CSSProperties, DragEvent, ReactNode } from 'react' import { useCallback, useEffect, useMemo, useState } from 'react' import { toast } from 'sonner' diff --git a/apps/studio/components/interfaces/Integrations/GraphQL/GraphiQLTab.tsx b/apps/studio/components/interfaces/Integrations/GraphQL/GraphiQLTab.tsx index 2478f55f7cd..2f5cd906fc9 100644 --- a/apps/studio/components/interfaces/Integrations/GraphQL/GraphiQLTab.tsx +++ b/apps/studio/components/interfaces/Integrations/GraphQL/GraphiQLTab.tsx @@ -6,13 +6,13 @@ import { toast } from 'sonner' import { useParams } from 'common' import GraphiQL from 'components/interfaces/GraphQL/GraphiQL' -import { Loading } from 'components/ui/Loading' import { getKeys, useAPIKeysQuery } from 'data/api-keys/api-keys-query' import { useSessionAccessTokenQuery } from 'data/auth/session-access-token-query' import { useProjectPostgrestConfigQuery } from 'data/config/project-postgrest-config-query' import { API_URL, IS_PLATFORM } from 'lib/constants' import { getRoleImpersonationJWT } from 'lib/role-impersonation' import { useGetImpersonatedRoleState } from 'state/role-impersonation-state' +import { LogoLoader } from 'ui' export const GraphiQLTab = () => { const { resolvedTheme } = useTheme() @@ -73,7 +73,7 @@ export const GraphiQLTab = () => { }, [projectRef, getImpersonatedRoleState, jwtSecret, accessToken, serviceKey, secretKey?.api_key]) if ((IS_PLATFORM && !accessToken) || !isFetched) { - return + return } return diff --git a/apps/studio/components/interfaces/Reports/GridResize.tsx b/apps/studio/components/interfaces/Reports/GridResize.tsx index f4634f74834..6355da82b91 100644 --- a/apps/studio/components/interfaces/Reports/GridResize.tsx +++ b/apps/studio/components/interfaces/Reports/GridResize.tsx @@ -15,7 +15,7 @@ import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { uuidv4 } from 'lib/helpers' import { useProfile } from 'lib/profile' -import { Dashboards } from 'types' +import type { Dashboards } from 'types' import { createSqlSnippetSkeletonV2 } from '../SQLEditor/SQLEditor.utils' import { ChartConfig } from '../SQLEditor/UtilityPanel/ChartConfig' import { ReportBlock } from './ReportBlock/ReportBlock' diff --git a/apps/studio/components/interfaces/Reports/MetricOptions.tsx b/apps/studio/components/interfaces/Reports/MetricOptions.tsx index 53d39b157bc..19cc6bab799 100644 --- a/apps/studio/components/interfaces/Reports/MetricOptions.tsx +++ b/apps/studio/components/interfaces/Reports/MetricOptions.tsx @@ -8,7 +8,7 @@ import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { Metric, METRIC_CATEGORIES, METRICS } from 'lib/constants/metrics' -import { Dashboards } from 'types' +import type { Dashboards } from 'types' import { Command_Shadcn_, CommandEmpty_Shadcn_, diff --git a/apps/studio/components/interfaces/Reports/ReportBlock/ChartBlock.tsx b/apps/studio/components/interfaces/Reports/ReportBlock/ChartBlock.tsx index 1e6ea533305..155fc26e1f9 100644 --- a/apps/studio/components/interfaces/Reports/ReportBlock/ChartBlock.tsx +++ b/apps/studio/components/interfaces/Reports/ReportBlock/ChartBlock.tsx @@ -19,7 +19,7 @@ import { METRICS } from 'lib/constants/metrics' import { Activity, BarChartIcon, Loader2 } from 'lucide-react' import { Bar, BarChart, CartesianGrid, Line, LineChart, XAxis, YAxis } from 'recharts' import { useDatabaseSelectorStateSnapshot } from 'state/database-selector' -import { Dashboards } from 'types' +import type { Dashboards } from 'types' import { WarningIcon } from 'ui' import { METRIC_THRESHOLDS } from './ReportBlock.constants' import { ReportBlockContainer } from './ReportBlockContainer' diff --git a/apps/studio/components/interfaces/Reports/Reports.tsx b/apps/studio/components/interfaces/Reports/Reports.tsx index b51b6661b13..b2669fe8949 100644 --- a/apps/studio/components/interfaces/Reports/Reports.tsx +++ b/apps/studio/components/interfaces/Reports/Reports.tsx @@ -11,7 +11,6 @@ import { useParams } from 'common' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import DatabaseSelector from 'components/ui/DatabaseSelector' import { DateRangePicker } from 'components/ui/DateRangePicker' -import { Loading } from 'components/ui/Loading' import NoPermission from 'components/ui/NoPermission' import { DEFAULT_CHART_CONFIG } from 'components/ui/QueryBlock/QueryBlock' import { AnalyticsInterval } from 'data/analytics/constants' @@ -29,8 +28,8 @@ import { Metric, TIME_PERIODS_REPORTS } from 'lib/constants/metrics' import { uuidv4 } from 'lib/helpers' import { useProfile } from 'lib/profile' import { useDatabaseSelectorStateSnapshot } from 'state/database-selector' -import { Dashboards } from 'types' -import { Button, cn, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from 'ui' +import type { Dashboards } from 'types' +import { Button, cn, DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, LogoLoader } from 'ui' import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import { createSqlSnippetSkeletonV2 } from '../SQLEditor/SQLEditor.utils' import { ChartConfig } from '../SQLEditor/UtilityPanel/ChartConfig' @@ -392,7 +391,7 @@ const Reports = () => { }, [hasEdits, confirmNavigate, router]) if (isLoading || isLoadingPermissions) { - return + return } if (!canReadReport) { diff --git a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/SavingIndicator.tsx b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/SavingIndicator.tsx index 9a0591906e5..a8fbec38aac 100644 --- a/apps/studio/components/interfaces/SQLEditor/UtilityPanel/SavingIndicator.tsx +++ b/apps/studio/components/interfaces/SQLEditor/UtilityPanel/SavingIndicator.tsx @@ -1,7 +1,7 @@ +import { usePrevious } from '@uidotdev/usehooks' import { AlertCircle, Check, Loader2, RefreshCcw } from 'lucide-react' import { useEffect, useState } from 'react' -import { usePrevious } from 'hooks/deprecated' import { useProfile } from 'lib/profile' import { useSqlEditorV2StateSnapshot } from 'state/sql-editor-v2' import { Button, Tooltip, TooltipContent, TooltipTrigger } from 'ui' diff --git a/apps/studio/components/interfaces/Settings/Logs/RecentQueriesItem.tsx b/apps/studio/components/interfaces/Settings/Logs/RecentQueriesItem.tsx index 4d95be7cea0..0afcc534c07 100644 --- a/apps/studio/components/interfaces/Settings/Logs/RecentQueriesItem.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/RecentQueriesItem.tsx @@ -1,9 +1,10 @@ -import Table from 'components/to-be-cleaned/Table' +import { Play } from 'lucide-react' import { useRouter } from 'next/router' + +import Table from 'components/to-be-cleaned/Table' import type { LogSqlSnippets } from 'types' import { Button } from 'ui' import SqlSnippetCode from './Logs.SqlSnippetCode' -import { Play } from 'lucide-react' interface Props { item: LogSqlSnippets.Content diff --git a/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx b/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx index 17bc50b429f..d1ece93f8cd 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx +++ b/apps/studio/components/interfaces/UnifiedLogs/ServiceFlowPanel.tsx @@ -2,7 +2,10 @@ import { useState } from 'react' import { useParams } from 'common' import { useDataTable } from 'components/ui/DataTable/providers/DataTableProvider' -import { ServiceFlowType, useUnifiedLogInspectionQuery } from 'data/logs' +import { + ServiceFlowType, + useUnifiedLogInspectionQuery, +} from 'data/logs/unified-log-inspection-query' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { CodeBlock, diff --git a/apps/studio/components/layouts/ProjectLayout/index.tsx b/apps/studio/components/layouts/ProjectLayout/index.tsx index cb259ffca56..43bc5ec4668 100644 --- a/apps/studio/components/layouts/ProjectLayout/index.tsx +++ b/apps/studio/components/layouts/ProjectLayout/index.tsx @@ -5,7 +5,6 @@ import { forwardRef, Fragment, PropsWithChildren, ReactNode, useEffect, useState import { useFlag, useParams } from 'common' import { CreateBranchModal } from 'components/interfaces/BranchManagement/CreateBranchModal' import { ProjectAPIDocs } from 'components/interfaces/ProjectAPIDocs/ProjectAPIDocs' -import { Loading } from 'components/ui/Loading' import { ResourceExhaustionWarningBanner } from 'components/ui/ResourceExhaustionWarningBanner/ResourceExhaustionWarningBanner' import { AnimatePresence, motion } from 'framer-motion' import { useCustomContent } from 'hooks/custom-content/useCustomContent' @@ -15,7 +14,7 @@ import { withAuth } from 'hooks/misc/withAuth' import { PROJECT_STATUS } from 'lib/constants' import { useAppStateSnapshot } from 'state/app-state' import { useDatabaseSelectorStateSnapshot } from 'state/database-selector' -import { cn, ResizableHandle, ResizablePanel, ResizablePanelGroup } from 'ui' +import { cn, LogoLoader, ResizableHandle, ResizablePanel, ResizablePanelGroup } from 'ui' import MobileSheetNav from 'ui-patterns/MobileSheetNav/MobileSheetNav' import { useEditorType } from '../editors/EditorsLayout.hooks' import BuildingState from './BuildingState' @@ -334,7 +333,7 @@ const ContentWrapper = ({ isLoading, isBlocking = true, children }: ContentWrapp }, [ref]) if (isBlocking && (isLoading || (requiresProjectDetails && selectedProject === undefined))) { - return router.pathname.endsWith('[ref]') ? : + return router.pathname.endsWith('[ref]') ? : } if (isRestarting && !isBackupsPage) { @@ -370,7 +369,7 @@ const ContentWrapper = ({ isLoading, isBlocking = true, children }: ContentWrapp } if (shouldRedirectToHomeForBuilding) { - return + return } if (shouldShowBuildingState) { diff --git a/apps/studio/components/layouts/ReportsLayout/ReportMenuItem.tsx b/apps/studio/components/layouts/ReportsLayout/ReportMenuItem.tsx index 781a4080ba2..0b8b048919a 100644 --- a/apps/studio/components/layouts/ReportsLayout/ReportMenuItem.tsx +++ b/apps/studio/components/layouts/ReportsLayout/ReportMenuItem.tsx @@ -5,7 +5,7 @@ import Link from 'next/link' import { ContentBase } from 'data/content/content-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useProfile } from 'lib/profile' -import { Dashboards } from 'types' +import type { Dashboards } from 'types' import { Button, cn, diff --git a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/ShareSnippetModal.tsx b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/ShareSnippetModal.tsx index c6e33f9922f..28c2be47152 100644 --- a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/ShareSnippetModal.tsx +++ b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/ShareSnippetModal.tsx @@ -6,7 +6,7 @@ import { getContentById } from 'data/content/content-id-query' import { useContentUpsertMutation } from 'data/content/content-upsert-mutation' import { Snippet } from 'data/content/sql-folders-query' import { useSqlEditorV2StateSnapshot } from 'state/sql-editor-v2' -import { SqlSnippets } from 'types' +import type { SqlSnippets } from 'types' import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' export const ShareSnippetModal = ({ diff --git a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/UnshareSnippetModal.tsx b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/UnshareSnippetModal.tsx index 3da90a17921..fb1fc02d292 100644 --- a/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/UnshareSnippetModal.tsx +++ b/apps/studio/components/layouts/SQLEditorLayout/SQLEditorNavV2/UnshareSnippetModal.tsx @@ -1,11 +1,12 @@ +import { EyeOffIcon } from 'lucide-react' +import { toast } from 'sonner' + import { useParams } from 'common' import { getContentById } from 'data/content/content-id-query' import { useContentUpsertMutation } from 'data/content/content-upsert-mutation' import { Snippet } from 'data/content/sql-folders-query' -import { EyeOffIcon } from 'lucide-react' -import { toast } from 'sonner' import { useSqlEditorV2StateSnapshot } from 'state/sql-editor-v2' -import { SqlSnippets } from 'types' +import type { SqlSnippets } from 'types' import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' export const UnshareSnippetModal = ({ diff --git a/apps/studio/components/to-be-cleaned/TooltipListener.tsx b/apps/studio/components/to-be-cleaned/TooltipListener.tsx deleted file mode 100644 index 7f520660618..00000000000 --- a/apps/studio/components/to-be-cleaned/TooltipListener.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { useRef, useEffect } from 'react' -import { renderToString } from 'react-dom/server' - -import { makeRandomString } from 'lib/helpers' -import KeyMap from './KeyMap' - -/** - * Hook for listening to hover action on the target element and show tooltip. - * A tooltip contains a title and an optional keyMap shortcut. - * - * @param {String} title - * @param {String} position top/top-left/bottom/bottom-left/left/right. default value: bottom - * @param {String} keyMap element key shortcuts - * @param {String} className custom class name - * @param {Boolean} nowrap disable title wrap text - * - * @returns {Object} Ref for the target element - */ - -export default function TooltipListener({ - title = '', - position = 'bottom', - keyMap = null, - className = '', - nowrap = false, -}) { - const ref = useRef(null) - const tooltipId = `tooltip-${makeRandomString(5)}` - const tooltip = document.createElement('div') - tooltip.id = tooltipId - tooltip.className = `tooltips ${position} absolute p-2 m-1 bg-black border border-solid border-default rounded-lg rounded text-center ${className} z-50` - tooltip.innerHTML = `${title} ${renderToString( -
- {/* force dark mode on KeyMap */} - -
- )}` - - function handleMouseOver() { - const elem = document.getElementById(tooltipId) - if (!elem) { - ref.current.style.position = 'relative' - ref.current.appendChild(tooltip) - } - } - - function handleMouseLeave() { - removeTooltip() - } - - function handleMouseClick() { - removeTooltip() - } - - function removeTooltip() { - const elem = document.getElementById(tooltipId) - if (elem) { - ref.current.style.position = 'static' - ref.current.removeChild(elem) - } - } - - useEffect(() => { - if (!ref.current) return - - ref.current.addEventListener('mouseover', handleMouseOver) - ref.current.addEventListener('mouseleave', handleMouseLeave) - ref.current.addEventListener('click', handleMouseClick) - - return () => { - ref.current.removeEventListener('mouseover', handleMouseOver) - ref.current.removeEventListener('mouseleave', handleMouseLeave) - ref.current.removeEventListener('click', handleMouseClick) - } - }, [ref.current]) - - return ref -} diff --git a/apps/studio/components/ui/CodeEditor/CodeEditor.tsx b/apps/studio/components/ui/CodeEditor/CodeEditor.tsx index 90532d12041..971ddc07083 100644 --- a/apps/studio/components/ui/CodeEditor/CodeEditor.tsx +++ b/apps/studio/components/ui/CodeEditor/CodeEditor.tsx @@ -7,8 +7,7 @@ import { Markdown } from 'components/interfaces/Markdown' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { formatSql } from 'lib/formatSql' import { timeout } from 'lib/helpers' -import { cn } from 'ui' -import { Loading } from '../Loading' +import { cn, LogoLoader } from 'ui' import { alignEditor } from './CodeEditor.utils' type CodeEditorActions = { enabled: boolean; callback: (value: any) => void } @@ -238,7 +237,7 @@ const CodeEditor = ({ value={value ?? undefined} language={language} defaultValue={defaultValue ?? undefined} - loading={loading || } + loading={loading || } options={optionsMerged} onMount={onMount} onChange={onChangeContent} diff --git a/apps/studio/components/ui/Loading/index.ts b/apps/studio/components/ui/Loading/index.ts deleted file mode 100644 index c7260e08d48..00000000000 --- a/apps/studio/components/ui/Loading/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { LogoLoader as Loading } from 'ui' diff --git a/apps/studio/components/ui/SqlEditor.tsx b/apps/studio/components/ui/SqlEditor.tsx index cd73a9438f6..8dc3157e6de 100644 --- a/apps/studio/components/ui/SqlEditor.tsx +++ b/apps/studio/components/ui/SqlEditor.tsx @@ -3,6 +3,7 @@ import { noop } from 'lodash' import { useEffect, useRef } from 'react' import { formatSql } from 'lib/formatSql' +import { LogoLoader } from 'ui' // [Joshen] We should deprecate this and use CodeEditor instead @@ -86,7 +87,7 @@ const SqlEditor = ({ defaultLanguage={language} defaultValue={defaultValue} path={queryId} - loading={} + loading={} options={{ readOnly, tabSize: 2, diff --git a/apps/studio/data/content-api/docs-error-codes-query.ts b/apps/studio/data/content-api/docs-error-codes-query.ts index 28b96a378d8..58e10dc04bf 100644 --- a/apps/studio/data/content-api/docs-error-codes-query.ts +++ b/apps/studio/data/content-api/docs-error-codes-query.ts @@ -1,6 +1,6 @@ import { useQuery, type UseQueryOptions } from '@tanstack/react-query' -import { graphql } from 'data/graphql' import { executeGraphQL } from 'data/graphql/execute' +import { graphql } from 'data/graphql/gql' import { Service } from 'data/graphql/graphql' import { contentApiKeys } from './keys' diff --git a/apps/studio/data/database/database-query-constants.ts b/apps/studio/data/database/database-query-constants.ts index 328a469fecb..f05a837a205 100644 --- a/apps/studio/data/database/database-query-constants.ts +++ b/apps/studio/data/database/database-query-constants.ts @@ -1,7 +1,4 @@ -export { CREATE_PG_GET_TABLEDEF_SQL } from './database-table-definition' - // https://www.postgresql.org/docs/current/catalog-pg-constraint.html - export enum FOREIGN_KEY_CASCADE_ACTION { NO_ACTION = 'a', RESTRICT = 'r', diff --git a/apps/studio/data/database/entity-definitions-query.ts b/apps/studio/data/database/entity-definitions-query.ts index 3630ba2e578..49bc48c4ba1 100644 --- a/apps/studio/data/database/entity-definitions-query.ts +++ b/apps/studio/data/database/entity-definitions-query.ts @@ -1,6 +1,6 @@ import { useQuery, UseQueryOptions } from '@tanstack/react-query' import { executeSql, ExecuteSqlError } from '../sql/execute-sql-query' -import { CREATE_PG_GET_TABLEDEF_SQL } from './database-query-constants' +import { CREATE_PG_GET_TABLEDEF_SQL } from './database-table-definition' import { databaseKeys } from './keys' export const getEntityDefinitionsSql = ({ diff --git a/apps/studio/data/database/table-definition-query.ts b/apps/studio/data/database/table-definition-query.ts index b5b5bb1593b..b20a20f163b 100644 --- a/apps/studio/data/database/table-definition-query.ts +++ b/apps/studio/data/database/table-definition-query.ts @@ -1,6 +1,6 @@ import { useQuery, UseQueryOptions } from '@tanstack/react-query' import { executeSql, ExecuteSqlError } from '../sql/execute-sql-query' -import { CREATE_PG_GET_TABLEDEF_SQL } from './database-query-constants' +import { CREATE_PG_GET_TABLEDEF_SQL } from './database-table-definition' import { databaseKeys } from './keys' type GetTableDefinitionArgs = { diff --git a/apps/studio/data/graphql/index.ts b/apps/studio/data/graphql/index.ts deleted file mode 100644 index 83851531f64..00000000000 --- a/apps/studio/data/graphql/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export {} from './fragment-masking' -export { graphql } from './gql' diff --git a/apps/studio/data/logs/index.ts b/apps/studio/data/logs/index.ts deleted file mode 100644 index 4410f1e3b84..00000000000 --- a/apps/studio/data/logs/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -export { logsKeys } from './keys' -export { - useUnifiedLogInspectionQuery, - getUnifiedLogInspection, - SERVICE_FLOW_TYPES, - type ServiceFlowType, - type UnifiedLogInspectionVariables, - type UnifiedLogInspectionResponse, - type UnifiedLogInspectionEntry, - type UnifiedLogInspectionData, - type UnifiedLogInspectionError, -} from './unified-log-inspection-query' diff --git a/apps/studio/hooks/deprecated.ts b/apps/studio/hooks/deprecated.ts deleted file mode 100644 index f5e534d08a2..00000000000 --- a/apps/studio/hooks/deprecated.ts +++ /dev/null @@ -1,12 +0,0 @@ -import TooltipListener from 'components/to-be-cleaned/TooltipListener' -import { useEffect, useRef } from 'react' - -function usePrevious(value: any) { - const ref = useRef() - useEffect(() => { - ref.current = value - }) - return ref.current -} - -export { TooltipListener, usePrevious } diff --git a/apps/studio/hooks/misc/useCheckPermissions.ts b/apps/studio/hooks/misc/useCheckPermissions.ts index 96f3667c052..b7ce793b75b 100644 --- a/apps/studio/hooks/misc/useCheckPermissions.ts +++ b/apps/studio/hooks/misc/useCheckPermissions.ts @@ -1,12 +1,12 @@ -import { useIsLoggedIn, useParams } from 'common' import jsonLogic from 'json-logic-js' +import { useMemo } from 'react' +import { useIsLoggedIn, useParams } from 'common' import { usePermissionsQuery } from 'data/permissions/permissions-query' import { IS_PLATFORM } from 'lib/constants' import type { Permission } from 'types' import { useSelectedOrganizationQuery } from './useSelectedOrganization' import { useSelectedProjectQuery } from './useSelectedProject' -import { useMemo } from 'react' const toRegexpString = (actionOrResource: string) => `^${actionOrResource.replace('.', '\\.').replace('%', '.*')}$` diff --git a/apps/studio/hooks/misc/withAuth.tsx b/apps/studio/hooks/misc/withAuth.tsx index a7795ed2a8d..64a6efc0326 100644 --- a/apps/studio/hooks/misc/withAuth.tsx +++ b/apps/studio/hooks/misc/withAuth.tsx @@ -2,12 +2,13 @@ import { useRouter } from 'next/router' import { ComponentType, useCallback, useEffect, useRef, useState } from 'react' import { toast } from 'sonner' +import { useAuth } from 'common' import { SessionTimeoutModal } from 'components/interfaces/SignIn/SessionTimeoutModal' import { usePermissionsQuery } from 'data/permissions/permissions-query' import { useAuthenticatorAssuranceLevelQuery } from 'data/profile/mfa-authenticator-assurance-level-query' -import { useAuth, useSignOut } from 'lib/auth' +import { useSignOut } from 'lib/auth' import { BASE_PATH, IS_PLATFORM } from 'lib/constants' -import { NextPageWithLayout, isNextPageWithLayout } from 'types' +import { type NextPageWithLayout, isNextPageWithLayout } from 'types' const MAX_TIMEOUT = 10000 // 10 seconds diff --git a/apps/studio/lib/auth.tsx b/apps/studio/lib/auth.tsx index 92663680c91..b405d8dd0e5 100644 --- a/apps/studio/lib/auth.tsx +++ b/apps/studio/lib/auth.tsx @@ -1,13 +1,13 @@ import { useQueryClient } from '@tanstack/react-query' +import { PropsWithChildren, useCallback, useEffect } from 'react' +import { toast } from 'sonner' + import { AuthProvider as AuthProviderInternal, clearLocalStorage, gotrueClient, useAuthError, } from 'common' -import { PropsWithChildren, useCallback, useEffect } from 'react' -import { toast } from 'sonner' - import { useAiAssistantStateSnapshot } from 'state/ai-assistant-state' import { GOTRUE_ERRORS, IS_PLATFORM } from './constants' @@ -39,8 +39,6 @@ export const AuthProvider = ({ children }: PropsWithChildren) => { ) } -export { useAuth, useIsLoggedIn, useSession, useUser } from 'common' - export function useSignOut() { const queryClient = useQueryClient() const { clearStorage: clearAssistantStorage } = useAiAssistantStateSnapshot() diff --git a/apps/studio/pages/_app.tsx b/apps/studio/pages/_app.tsx index 66ed565b58e..5b96b0af328 100644 --- a/apps/studio/pages/_app.tsx +++ b/apps/studio/pages/_app.tsx @@ -57,7 +57,7 @@ import { AuthProvider } from 'lib/auth' import { API_URL, BASE_PATH, IS_PLATFORM, useDefaultProvider } from 'lib/constants' import { ProfileProvider } from 'lib/profile' import { Telemetry } from 'lib/telemetry' -import { AppPropsWithLayout } from 'types' +import type { AppPropsWithLayout } from 'types' import { SonnerToaster, TooltipProvider } from 'ui' dayjs.extend(customParseFormat) diff --git a/apps/studio/pages/aws-marketplace-onboarding.tsx b/apps/studio/pages/aws-marketplace-onboarding.tsx index ee06af6d5a9..573e9e32a69 100644 --- a/apps/studio/pages/aws-marketplace-onboarding.tsx +++ b/apps/studio/pages/aws-marketplace-onboarding.tsx @@ -1,4 +1,6 @@ import { useRouter } from 'next/router' + +import type { NextPageWithLayout } from 'types' import AwsMarketplaceCreateNewOrg from '../components/interfaces/Organization/CloudMarketplace/AwsMarketplaceCreateNewOrg' import { AwsMarketplaceLinkExistingOrg } from '../components/interfaces/Organization/CloudMarketplace/AwsMarketplaceLinkExistingOrg' import AwsMarketplaceOnboardingPlaceholder from '../components/interfaces/Organization/CloudMarketplace/AwsMarketplaceOnboardingPlaceholder' @@ -11,7 +13,6 @@ import { ScaffoldTitle, } from '../components/layouts/Scaffold' import { useOrganizationsQuery } from '../data/organizations/organizations-query' -import { NextPageWithLayout } from '../types' const AwsMarketplaceOnboarding: NextPageWithLayout = () => { const { diff --git a/apps/studio/pages/cli/login.tsx b/apps/studio/pages/cli/login.tsx index b31eb20c54f..fa11a76594e 100644 --- a/apps/studio/pages/cli/login.tsx +++ b/apps/studio/pages/cli/login.tsx @@ -1,15 +1,15 @@ -import { useIsLoggedIn, useParams } from 'common' -import APIAuthorizationLayout from 'components/layouts/APIAuthorizationLayout' -import CopyButton from 'components/ui/CopyButton' -import { Loading } from 'components/ui/Loading' -import { createCliLoginSession } from 'data/cli/login' -import { withAuth } from 'hooks/misc/withAuth' import Link from 'next/link' import { useRouter } from 'next/router' import { useEffect } from 'react' import { toast } from 'sonner' -import { NextPageWithLayout } from 'types' -import { InputOTP, InputOTPGroup, InputOTPSlot } from 'ui' + +import { useIsLoggedIn, useParams } from 'common' +import APIAuthorizationLayout from 'components/layouts/APIAuthorizationLayout' +import CopyButton from 'components/ui/CopyButton' +import { createCliLoginSession } from 'data/cli/login' +import { withAuth } from 'hooks/misc/withAuth' +import type { NextPageWithLayout } from 'types' +import { InputOTP, InputOTPGroup, InputOTPSlot, LogoLoader } from 'ui' import { Admonition } from 'ui-patterns' const CliLoginPage: NextPageWithLayout = () => { @@ -77,7 +77,7 @@ const CliLoginPage: NextPageWithLayout = () => { /> ) : ( - + )} diff --git a/apps/studio/pages/forgot-password-mfa.tsx b/apps/studio/pages/forgot-password-mfa.tsx index 341485c511c..801d9507323 100644 --- a/apps/studio/pages/forgot-password-mfa.tsx +++ b/apps/studio/pages/forgot-password-mfa.tsx @@ -7,9 +7,9 @@ import { toast } from 'sonner' import { getAccessToken } from 'common' import { SignInMfaForm } from 'components/interfaces/SignIn/SignInMfaForm' import ForgotPasswordLayout from 'components/layouts/SignInLayout/ForgotPasswordLayout' -import { Loading } from 'components/ui/Loading' import { auth, buildPathWithParams, getReturnToPath } from 'lib/gotrue' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' const ForgotPasswordMfa: NextPageWithLayout = () => { const router = useRouter() @@ -69,7 +69,7 @@ const ForgotPasswordMfa: NextPageWithLayout = () => { if (loading) { return (
- +
) } diff --git a/apps/studio/pages/integrations/vercel/install.tsx b/apps/studio/pages/integrations/vercel/install.tsx index bf9a99e011d..8494b474892 100644 --- a/apps/studio/pages/integrations/vercel/install.tsx +++ b/apps/studio/pages/integrations/vercel/install.tsx @@ -1,4 +1,5 @@ import { useParams } from 'common' +import { AlertTriangle, Info } from 'lucide-react' import Link from 'next/link' import { useRouter } from 'next/router' import { useEffect, useMemo, useState } from 'react' @@ -13,7 +14,6 @@ import { ScaffoldColumn, ScaffoldContainer } from 'components/layouts/Scaffold' import { useIntegrationsQuery } from 'data/integrations/integrations-query' import { useVercelIntegrationCreateMutation } from 'data/integrations/vercel-integration-create-mutation' import { useOrganizationsQuery } from 'data/organizations/organizations-query' -import { AlertTriangle, Info } from 'lucide-react' import { useIntegrationInstallationSnapshot } from 'state/integration-installation' import type { NextPageWithLayout, Organization } from 'types' diff --git a/apps/studio/pages/join.tsx b/apps/studio/pages/join.tsx index 75823e77d9d..b7ea40b6ca6 100644 --- a/apps/studio/pages/join.tsx +++ b/apps/studio/pages/join.tsx @@ -4,7 +4,7 @@ import { OrganizationInvite } from 'components/interfaces/OrganizationInvite/Org import { BASE_PATH } from 'lib/constants' import { useTheme } from 'next-themes' import { useEffect, useMemo, useState } from 'react' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' import { cn } from 'ui' const JoinOrganizationPage: NextPageWithLayout = () => { diff --git a/apps/studio/pages/logout.tsx b/apps/studio/pages/logout.tsx index 40307dd9275..8be367a62dd 100644 --- a/apps/studio/pages/logout.tsx +++ b/apps/studio/pages/logout.tsx @@ -2,9 +2,9 @@ import { useRouter } from 'next/router' import { useEffect } from 'react' import { toast } from 'sonner' -import { Loading } from 'components/ui/Loading' import { useSignOut } from 'lib/auth' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' const LogoutPage: NextPageWithLayout = () => { const router = useRouter() @@ -21,7 +21,7 @@ const LogoutPage: NextPageWithLayout = () => { return (
- +
) } diff --git a/apps/studio/pages/org/[slug]/audit.tsx b/apps/studio/pages/org/[slug]/audit.tsx index 42a813754af..5b806f0cc3e 100644 --- a/apps/studio/pages/org/[slug]/audit.tsx +++ b/apps/studio/pages/org/[slug]/audit.tsx @@ -2,17 +2,19 @@ import { AuditLogs } from 'components/interfaces/Organization/AuditLogs/AuditLog import DefaultLayout from 'components/layouts/DefaultLayout' import OrganizationLayout from 'components/layouts/OrganizationLayout' import OrganizationSettingsLayout from 'components/layouts/ProjectLayout/OrganizationSettingsLayout' -import { Loading } from 'components/ui/Loading' import { usePermissionsQuery } from 'data/permissions/permissions-query' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' const OrgAuditLogs: NextPageWithLayout = () => { const { isLoading: isLoadingPermissions } = usePermissionsQuery() const { data: selectedOrganization } = useSelectedOrganizationQuery() return ( - <>{selectedOrganization === undefined && isLoadingPermissions ? : } + <> + {selectedOrganization === undefined && isLoadingPermissions ? : } + ) } diff --git a/apps/studio/pages/org/[slug]/general.tsx b/apps/studio/pages/org/[slug]/general.tsx index 1bdcce2af5b..487a1cd9b1f 100644 --- a/apps/studio/pages/org/[slug]/general.tsx +++ b/apps/studio/pages/org/[slug]/general.tsx @@ -2,10 +2,10 @@ import { GeneralSettings } from 'components/interfaces/Organization/GeneralSetti import DefaultLayout from 'components/layouts/DefaultLayout' import OrganizationLayout from 'components/layouts/OrganizationLayout' import OrganizationSettingsLayout from 'components/layouts/ProjectLayout/OrganizationSettingsLayout' -import { Loading } from 'components/ui/Loading' import { usePermissionsQuery } from 'data/permissions/permissions-query' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' const OrgGeneralSettings: NextPageWithLayout = () => { const { isLoading: isLoadingPermissions } = usePermissionsQuery() @@ -14,7 +14,7 @@ const OrgGeneralSettings: NextPageWithLayout = () => { return ( <> {selectedOrganization === undefined && isLoadingPermissions ? ( - + ) : ( )} diff --git a/apps/studio/pages/org/[slug]/team.tsx b/apps/studio/pages/org/[slug]/team.tsx index 36039aebd48..b2ac479ddfa 100644 --- a/apps/studio/pages/org/[slug]/team.tsx +++ b/apps/studio/pages/org/[slug]/team.tsx @@ -1,16 +1,20 @@ import { TeamSettings } from 'components/interfaces/Organization/TeamSettings/TeamSettings' import DefaultLayout from 'components/layouts/DefaultLayout' import OrganizationLayout from 'components/layouts/OrganizationLayout' -import { Loading } from 'components/ui/Loading' import { usePermissionsQuery } from 'data/permissions/permissions-query' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' const OrgTeamSettings: NextPageWithLayout = () => { const { isLoading: isLoadingPermissions } = usePermissionsQuery() const { data: selectedOrganization } = useSelectedOrganizationQuery() - return selectedOrganization === undefined && isLoadingPermissions ? : + return selectedOrganization === undefined && isLoadingPermissions ? ( + + ) : ( + + ) } OrgTeamSettings.getLayout = (page) => ( diff --git a/apps/studio/pages/organizations.tsx b/apps/studio/pages/organizations.tsx index b09de93df16..2cd7e942699 100644 --- a/apps/studio/pages/organizations.tsx +++ b/apps/studio/pages/organizations.tsx @@ -14,7 +14,7 @@ import NoSearchResults from 'components/ui/NoSearchResults' import { useOrganizationsQuery } from 'data/organizations/organizations-query' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { withAuth } from 'hooks/misc/withAuth' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, diff --git a/apps/studio/pages/project/[ref]/advisors/rules/performance.tsx b/apps/studio/pages/project/[ref]/advisors/rules/performance.tsx index 9fe5d07746b..9cf9a0fc031 100644 --- a/apps/studio/pages/project/[ref]/advisors/rules/performance.tsx +++ b/apps/studio/pages/project/[ref]/advisors/rules/performance.tsx @@ -1,6 +1,6 @@ import { AdvisorRules } from 'components/interfaces/Advisors/AdvisorRules' import { AdvisorRulesLayout } from 'components/layouts/AdvisorsLayout/AdvisorRulesLayout' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' const AdvisorPerformanceRulesPage: NextPageWithLayout = () => { return diff --git a/apps/studio/pages/project/[ref]/advisors/rules/security.tsx b/apps/studio/pages/project/[ref]/advisors/rules/security.tsx index c28b4ff186e..80778f9dc22 100644 --- a/apps/studio/pages/project/[ref]/advisors/rules/security.tsx +++ b/apps/studio/pages/project/[ref]/advisors/rules/security.tsx @@ -1,6 +1,6 @@ import { AdvisorRules } from 'components/interfaces/Advisors/AdvisorRules' import { AdvisorRulesLayout } from 'components/layouts/AdvisorsLayout/AdvisorRulesLayout' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' const AdvisorSecurityRulesPage: NextPageWithLayout = () => { return diff --git a/apps/studio/pages/project/[ref]/auth/overview.tsx b/apps/studio/pages/project/[ref]/auth/overview.tsx index a0c89ea5d13..f16920f031f 100644 --- a/apps/studio/pages/project/[ref]/auth/overview.tsx +++ b/apps/studio/pages/project/[ref]/auth/overview.tsx @@ -1,16 +1,16 @@ -import { NextPageWithLayout } from 'types' -import DefaultLayout from 'components/layouts/DefaultLayout' -import AuthLayout from 'components/layouts/AuthLayout/AuthLayout' -import { ScaffoldContainer } from 'components/layouts/Scaffold' -import { PageLayout } from 'components/layouts/PageLayout/PageLayout' -import { DocsButton } from 'components/ui/DocsButton' -import { DOCS_URL } from 'lib/constants' -import { OverviewUsage } from 'components/interfaces/Auth/Overview/OverviewUsage' +import { FeatureFlagContext, useFlag, useParams } from 'common' import { OverviewLearnMore } from 'components/interfaces/Auth/Overview/OverviewLearnMore' import { OverviewMonitoring } from 'components/interfaces/Auth/Overview/OverviewMonitoring' +import { OverviewUsage } from 'components/interfaces/Auth/Overview/OverviewUsage' +import AuthLayout from 'components/layouts/AuthLayout/AuthLayout' +import DefaultLayout from 'components/layouts/DefaultLayout' +import { PageLayout } from 'components/layouts/PageLayout/PageLayout' +import { ScaffoldContainer } from 'components/layouts/Scaffold' +import { DocsButton } from 'components/ui/DocsButton' +import { DOCS_URL } from 'lib/constants' import { useRouter } from 'next/router' -import { FeatureFlagContext, useFlag, useParams } from 'common' import { useContext, useEffect } from 'react' +import type { NextPageWithLayout } from 'types' const AuthOverview: NextPageWithLayout = () => { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/auth/policies.tsx b/apps/studio/pages/project/[ref]/auth/policies.tsx index 64f9aa45999..e5c05ebbb44 100644 --- a/apps/studio/pages/project/[ref]/auth/policies.tsx +++ b/apps/studio/pages/project/[ref]/auth/policies.tsx @@ -12,23 +12,23 @@ import { generatePolicyUpdateSQL } from 'components/interfaces/Auth/Policies/Pol import AuthLayout from 'components/layouts/AuthLayout/AuthLayout' import DefaultLayout from 'components/layouts/DefaultLayout' import { PageLayout } from 'components/layouts/PageLayout/PageLayout' +import { SIDEBAR_KEYS } from 'components/layouts/ProjectLayout/LayoutSidebar/LayoutSidebarProvider' import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import AlertError from 'components/ui/AlertError' import { DocsButton } from 'components/ui/DocsButton' import NoPermission from 'components/ui/NoPermission' import SchemaSelector from 'components/ui/SchemaSelector' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' -import { useDatabasePoliciesQuery } from 'data/database-policies/database-policies-query' import { useProjectPostgrestConfigQuery } from 'data/config/project-postgrest-config-query' +import { useDatabasePoliciesQuery } from 'data/database-policies/database-policies-query' import { useTablesQuery } from 'data/tables/tables-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useIsProtectedSchema } from 'hooks/useProtectedSchemas' import { DOCS_URL } from 'lib/constants' -import { SIDEBAR_KEYS } from 'components/layouts/ProjectLayout/LayoutSidebar/LayoutSidebarProvider' +import { parseAsString, useQueryState } from 'nuqs' import { useEditorPanelStateSnapshot } from 'state/editor-panel-state' import { useSidebarManagerSnapshot } from 'state/sidebar-manager-state' -import { parseAsString, useQueryState } from 'nuqs' import type { NextPageWithLayout } from 'types' import { Input } from 'ui-patterns/DataInputs/Input' diff --git a/apps/studio/pages/project/[ref]/database/functions.tsx b/apps/studio/pages/project/[ref]/database/functions.tsx index eb33fa1d6fc..02e68b6ee14 100644 --- a/apps/studio/pages/project/[ref]/database/functions.tsx +++ b/apps/studio/pages/project/[ref]/database/functions.tsx @@ -7,16 +7,16 @@ import { DeleteFunction } from 'components/interfaces/Database/Functions/DeleteF import FunctionsList from 'components/interfaces/Database/Functions/FunctionsList/FunctionsList' import DatabaseLayout from 'components/layouts/DatabaseLayout/DatabaseLayout' import DefaultLayout from 'components/layouts/DefaultLayout' +import { SIDEBAR_KEYS } from 'components/layouts/ProjectLayout/LayoutSidebar/LayoutSidebarProvider' import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' import { DatabaseFunction } from 'data/database-functions/database-functions-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { DOCS_URL } from 'lib/constants' -import type { NextPageWithLayout } from 'types' -import { SIDEBAR_KEYS } from 'components/layouts/ProjectLayout/LayoutSidebar/LayoutSidebarProvider' import { useEditorPanelStateSnapshot } from 'state/editor-panel-state' import { useSidebarManagerSnapshot } from 'state/sidebar-manager-state' +import type { NextPageWithLayout } from 'types' const DatabaseFunctionsPage: NextPageWithLayout = () => { const [selectedFunction, setSelectedFunction] = useState() diff --git a/apps/studio/pages/project/[ref]/database/schemas.tsx b/apps/studio/pages/project/[ref]/database/schemas.tsx index d653dd912e8..3b65542418b 100644 --- a/apps/studio/pages/project/[ref]/database/schemas.tsx +++ b/apps/studio/pages/project/[ref]/database/schemas.tsx @@ -2,8 +2,8 @@ import { ReactFlowProvider } from 'reactflow' import { SchemaGraph } from 'components/interfaces/Database/Schemas/SchemaGraph' import DatabaseLayout from 'components/layouts/DatabaseLayout/DatabaseLayout' -import type { NextPageWithLayout } from 'types' import DefaultLayout from 'components/layouts/DefaultLayout' +import type { NextPageWithLayout } from 'types' const SchemasPage: NextPageWithLayout = () => { return ( diff --git a/apps/studio/pages/project/[ref]/database/triggers.tsx b/apps/studio/pages/project/[ref]/database/triggers.tsx index 50edcb6b844..fd9cc1df6ce 100644 --- a/apps/studio/pages/project/[ref]/database/triggers.tsx +++ b/apps/studio/pages/project/[ref]/database/triggers.tsx @@ -9,15 +9,15 @@ import { generateTriggerCreateSQL } from 'components/interfaces/Database/Trigger import TriggersList from 'components/interfaces/Database/Triggers/TriggersList/TriggersList' import DatabaseLayout from 'components/layouts/DatabaseLayout/DatabaseLayout' import DefaultLayout from 'components/layouts/DefaultLayout' +import { SIDEBAR_KEYS } from 'components/layouts/ProjectLayout/LayoutSidebar/LayoutSidebarProvider' import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { DOCS_URL } from 'lib/constants' -import type { NextPageWithLayout } from 'types' -import { SIDEBAR_KEYS } from 'components/layouts/ProjectLayout/LayoutSidebar/LayoutSidebarProvider' import { useEditorPanelStateSnapshot } from 'state/editor-panel-state' import { useSidebarManagerSnapshot } from 'state/sidebar-manager-state' +import type { NextPageWithLayout } from 'types' const TriggersPage: NextPageWithLayout = () => { const isInlineEditorEnabled = useIsInlineEditorEnabled() diff --git a/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/[childId]/index.tsx b/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/[childId]/index.tsx index e2527a9219d..87704cf4e12 100644 --- a/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/[childId]/index.tsx +++ b/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/[childId]/index.tsx @@ -8,7 +8,7 @@ import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useRouter } from 'next/compat/router' import { useEffect, useMemo } from 'react' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' import { Admonition } from 'ui-patterns' const IntegrationPage: NextPageWithLayout = () => { diff --git a/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/index.tsx b/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/index.tsx index 1b7ced2f8ee..19c85fbd74c 100644 --- a/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/index.tsx +++ b/apps/studio/pages/project/[ref]/integrations/[id]/[pageId]/index.tsx @@ -10,7 +10,7 @@ import { UnknownInterface } from 'components/ui/UnknownInterface' import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useRouter } from 'next/compat/router' import { useEffect, useMemo } from 'react' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' import { Admonition } from 'ui-patterns' const IntegrationPage: NextPageWithLayout = () => { diff --git a/apps/studio/pages/project/[ref]/integrations/[id]/index.tsx b/apps/studio/pages/project/[ref]/integrations/[id]/index.tsx index 37e5f844e0d..8ffe7a7c109 100644 --- a/apps/studio/pages/project/[ref]/integrations/[id]/index.tsx +++ b/apps/studio/pages/project/[ref]/integrations/[id]/index.tsx @@ -1,12 +1,11 @@ import { useParams } from 'common' import DefaultLayout from 'components/layouts/DefaultLayout' import IntegrationsLayout from 'components/layouts/Integrations/layout' -import { PageLayout } from 'components/layouts/PageLayout/PageLayout' import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useRouter } from 'next/compat/router' import { useEffect } from 'react' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' const IntegrationPage: NextPageWithLayout = () => { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/logs/cron-logs.tsx b/apps/studio/pages/project/[ref]/logs/cron-logs.tsx index 58bccd410de..fe9f47e39f1 100644 --- a/apps/studio/pages/project/[ref]/logs/cron-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/cron-logs.tsx @@ -2,11 +2,11 @@ import { useRouter } from 'next/router' +import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' +import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import type { NextPageWithLayout } from 'types' -import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants' -import DefaultLayout from 'components/layouts/DefaultLayout' export const LogPage: NextPageWithLayout = () => { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/logs/dedicated-pooler-logs.tsx b/apps/studio/pages/project/[ref]/logs/dedicated-pooler-logs.tsx index 62f26ace503..8ee5a0969e4 100644 --- a/apps/studio/pages/project/[ref]/logs/dedicated-pooler-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/dedicated-pooler-logs.tsx @@ -3,11 +3,11 @@ import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constant import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' -import { Loading } from 'components/ui/Loading' import { useCurrentOrgPlan } from 'hooks/misc/useCurrentOrgPlan' import { useRouter } from 'next/router' import { useEffect } from 'react' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' export const LogPage: NextPageWithLayout = () => { const router = useRouter() @@ -24,7 +24,7 @@ export const LogPage: NextPageWithLayout = () => { // Prevent showing logs while checking plan or loading config if (isOrgPlanLoading || isFreePlan) { - return + return } return ( diff --git a/apps/studio/pages/project/[ref]/logs/edge-functions-logs.tsx b/apps/studio/pages/project/[ref]/logs/edge-functions-logs.tsx index 34ca6a8bf90..fc9d0249c98 100644 --- a/apps/studio/pages/project/[ref]/logs/edge-functions-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/edge-functions-logs.tsx @@ -2,9 +2,9 @@ import { useRouter } from 'next/router' import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' +import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import type { NextPageWithLayout } from 'types' -import DefaultLayout from 'components/layouts/DefaultLayout' export const LogPage: NextPageWithLayout = () => { const router = useRouter() const { ref } = router.query diff --git a/apps/studio/pages/project/[ref]/logs/edge-logs.tsx b/apps/studio/pages/project/[ref]/logs/edge-logs.tsx index b97ef42a875..89e7d1fa99c 100644 --- a/apps/studio/pages/project/[ref]/logs/edge-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/edge-logs.tsx @@ -2,9 +2,9 @@ import { useRouter } from 'next/router' import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' +import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import type { NextPageWithLayout } from 'types' -import DefaultLayout from 'components/layouts/DefaultLayout' export const LogPage: NextPageWithLayout = () => { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/logs/etl-replication-logs.tsx b/apps/studio/pages/project/[ref]/logs/etl-replication-logs.tsx index 25171a4d1e2..b456cc436fa 100644 --- a/apps/studio/pages/project/[ref]/logs/etl-replication-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/etl-replication-logs.tsx @@ -1,9 +1,9 @@ +import { useParams } from 'common' import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' -import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import DefaultLayout from 'components/layouts/DefaultLayout' +import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import type { NextPageWithLayout } from 'types' -import { useParams } from 'common' export const LogPage: NextPageWithLayout = () => { const { ref } = useParams() diff --git a/apps/studio/pages/project/[ref]/logs/explorer/recent.tsx b/apps/studio/pages/project/[ref]/logs/explorer/recent.tsx index ec9ff6a5e50..4fdfda5bdda 100644 --- a/apps/studio/pages/project/[ref]/logs/explorer/recent.tsx +++ b/apps/studio/pages/project/[ref]/logs/explorer/recent.tsx @@ -1,15 +1,15 @@ +import { Clock } from 'lucide-react' import Link from 'next/link' import { useParams } from 'common' import RecentQueriesItem from 'components/interfaces/Settings/Logs/RecentQueriesItem' +import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import Table from 'components/to-be-cleaned/Table' import LogsExplorerHeader from 'components/ui/Logs/LogsExplorerHeader' import { useLocalStorage } from 'hooks/misc/useLocalStorage' import type { LogSqlSnippets, NextPageWithLayout } from 'types' import { Button } from 'ui' -import { Clock } from 'lucide-react' -import DefaultLayout from 'components/layouts/DefaultLayout' export const LogsSavedPage: NextPageWithLayout = () => { const { ref } = useParams() diff --git a/apps/studio/pages/project/[ref]/logs/explorer/saved.tsx b/apps/studio/pages/project/[ref]/logs/explorer/saved.tsx index 19024f03005..aeda5008739 100644 --- a/apps/studio/pages/project/[ref]/logs/explorer/saved.tsx +++ b/apps/studio/pages/project/[ref]/logs/explorer/saved.tsx @@ -3,13 +3,13 @@ import { Save } from 'lucide-react' import Link from 'next/link' import LogsSavedQueriesItem from 'components/interfaces/Settings/Logs/Logs.SavedQueriesItem' +import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import Table from 'components/to-be-cleaned/Table' import LogsExplorerHeader from 'components/ui/Logs/LogsExplorerHeader' import { useContentQuery } from 'data/content/content-query' import type { NextPageWithLayout } from 'types' import { Loading } from 'ui' -import DefaultLayout from 'components/layouts/DefaultLayout' // [Joshen] This page looks like its not longer in use from a UI POV - double checking and deprecate + add redirects export const LogsSavedPage: NextPageWithLayout = () => { diff --git a/apps/studio/pages/project/[ref]/logs/index.tsx b/apps/studio/pages/project/[ref]/logs/index.tsx index 3f8c7b68541..ca61c7cf858 100644 --- a/apps/studio/pages/project/[ref]/logs/index.tsx +++ b/apps/studio/pages/project/[ref]/logs/index.tsx @@ -6,7 +6,7 @@ import { useUnifiedLogsPreview } from 'components/interfaces/App/FeaturePreview/ import { UnifiedLogs } from 'components/interfaces/UnifiedLogs/UnifiedLogs' import DefaultLayout from 'components/layouts/DefaultLayout' import { ProjectLayout } from 'components/layouts/ProjectLayout' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' export const LogPage: NextPageWithLayout = () => { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/logs/pgcron-logs.tsx b/apps/studio/pages/project/[ref]/logs/pgcron-logs.tsx index e3a32652066..22bb9d979cf 100644 --- a/apps/studio/pages/project/[ref]/logs/pgcron-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/pgcron-logs.tsx @@ -2,8 +2,8 @@ import { useRouter } from 'next/router' import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' -import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import DefaultLayout from 'components/layouts/DefaultLayout' +import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import type { NextPageWithLayout } from 'types' export const LogPage: NextPageWithLayout = () => { diff --git a/apps/studio/pages/project/[ref]/logs/pooler-logs.tsx b/apps/studio/pages/project/[ref]/logs/pooler-logs.tsx index bee89264a26..08f18ff8c56 100644 --- a/apps/studio/pages/project/[ref]/logs/pooler-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/pooler-logs.tsx @@ -3,16 +3,16 @@ import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constant import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' -import { Loading } from 'components/ui/Loading' import { useSupavisorConfigurationQuery } from 'data/database/supavisor-configuration-query' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' export const LogPage: NextPageWithLayout = () => { const { ref } = useParams() const { isLoading } = useSupavisorConfigurationQuery({ projectRef: ref ?? 'default' }) // this prevents initial load of pooler logs before config has been retrieved - if (isLoading) return + if (isLoading) return return ( { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/logs/postgrest-logs.tsx b/apps/studio/pages/project/[ref]/logs/postgrest-logs.tsx index 66a5622f6e6..af38c4c6785 100644 --- a/apps/studio/pages/project/[ref]/logs/postgrest-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/postgrest-logs.tsx @@ -2,10 +2,10 @@ import { useRouter } from 'next/router' import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' -import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' -import type { NextPageWithLayout } from 'types' import { LogsTableEmptyState } from 'components/interfaces/Settings/Logs/LogsTableEmptyState' import DefaultLayout from 'components/layouts/DefaultLayout' +import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' +import type { NextPageWithLayout } from 'types' export const LogPage: NextPageWithLayout = () => { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/logs/realtime-logs.tsx b/apps/studio/pages/project/[ref]/logs/realtime-logs.tsx index f3233584c16..ccd69081bd1 100644 --- a/apps/studio/pages/project/[ref]/logs/realtime-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/realtime-logs.tsx @@ -1,9 +1,9 @@ import { useRouter } from 'next/router' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' +import DefaultLayout from 'components/layouts/DefaultLayout' import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import type { NextPageWithLayout } from 'types' -import DefaultLayout from 'components/layouts/DefaultLayout' export const LogPage: NextPageWithLayout = () => { const router = useRouter() diff --git a/apps/studio/pages/project/[ref]/logs/storage-logs.tsx b/apps/studio/pages/project/[ref]/logs/storage-logs.tsx index 1461ad5917c..3131dac9ad5 100644 --- a/apps/studio/pages/project/[ref]/logs/storage-logs.tsx +++ b/apps/studio/pages/project/[ref]/logs/storage-logs.tsx @@ -1,8 +1,8 @@ import { useRouter } from 'next/router' import { LogsPreviewer } from 'components/interfaces/Settings/Logs/LogsPreviewer' -import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import DefaultLayout from 'components/layouts/DefaultLayout' +import LogsLayout from 'components/layouts/LogsLayout/LogsLayout' import type { NextPageWithLayout } from 'types' export const LogPage: NextPageWithLayout = () => { diff --git a/apps/studio/pages/project/[ref]/reports/api-overview.tsx b/apps/studio/pages/project/[ref]/reports/api-overview.tsx index db5c13970d7..368378ce753 100644 --- a/apps/studio/pages/project/[ref]/reports/api-overview.tsx +++ b/apps/studio/pages/project/[ref]/reports/api-overview.tsx @@ -17,7 +17,7 @@ import DefaultLayout from 'components/layouts/DefaultLayout' import ReportsLayout from 'components/layouts/ReportsLayout/ReportsLayout' import { useApiReport } from 'data/reports/api-report-query' import { useReportDateRange } from 'hooks/misc/useReportDateRange' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' export const ApiReport: NextPageWithLayout = () => { const report = useApiReport() diff --git a/apps/studio/pages/project/[ref]/reports/auth.tsx b/apps/studio/pages/project/[ref]/reports/auth.tsx index 6d153cadc0e..7ab6bf4c442 100644 --- a/apps/studio/pages/project/[ref]/reports/auth.tsx +++ b/apps/studio/pages/project/[ref]/reports/auth.tsx @@ -2,13 +2,13 @@ import { useQueryClient } from '@tanstack/react-query' import { useParams } from 'common' import dayjs from 'dayjs' import { ArrowRight, LogsIcon, RefreshCw } from 'lucide-react' -import { useMemo, useState } from 'react' +import { useState } from 'react' -import { ReportChartV2 } from 'components/interfaces/Reports/v2/ReportChartV2' -import { ReportSectionHeader } from 'components/interfaces/Reports/v2/ReportSectionHeader' import ReportHeader from 'components/interfaces/Reports/ReportHeader' import ReportPadding from 'components/interfaces/Reports/ReportPadding' import ReportStickyNav from 'components/interfaces/Reports/ReportStickyNav' +import { ReportChartV2 } from 'components/interfaces/Reports/v2/ReportChartV2' +import { ReportSectionHeader } from 'components/interfaces/Reports/v2/ReportSectionHeader' import { LogsDatePicker } from 'components/interfaces/Settings/Logs/Logs.DatePickers' import DefaultLayout from 'components/layouts/DefaultLayout' import ReportsLayout from 'components/layouts/ReportsLayout/ReportsLayout' @@ -18,17 +18,6 @@ import ReportFilterBar from 'components/interfaces/Reports/ReportFilterBar' import { REPORT_DATERANGE_HELPER_LABELS } from 'components/interfaces/Reports/Reports.constants' import { SharedAPIReport } from 'components/interfaces/Reports/SharedAPIReport/SharedAPIReport' import { useSharedAPIReport } from 'components/interfaces/Reports/SharedAPIReport/SharedAPIReport.constants' -import UpgradePrompt from 'components/interfaces/Settings/Logs/UpgradePrompt' -import { useReportDateRange } from 'hooks/misc/useReportDateRange' -import type { NextPageWithLayout } from 'types' -import { - createUsageReportConfig, - createErrorsReportConfig, - createLatencyReportConfig, -} from 'data/reports/v2/auth.config' -import { ReportSettings } from 'components/ui/Charts/ReportSettings' -import type { ChartHighlightAction } from 'components/ui/Charts/ChartHighlightActions' -import { useRouter } from 'next/router' import { ReportsNumericFilter, numericFilterSchema, @@ -37,7 +26,18 @@ import { ReportsSelectFilter, selectFilterSchema, } from 'components/interfaces/Reports/v2/ReportsSelectFilter' -import { useQueryState, parseAsJson } from 'nuqs' +import UpgradePrompt from 'components/interfaces/Settings/Logs/UpgradePrompt' +import type { ChartHighlightAction } from 'components/ui/Charts/ChartHighlightActions' +import { ReportSettings } from 'components/ui/Charts/ReportSettings' +import { + createErrorsReportConfig, + createLatencyReportConfig, + createUsageReportConfig, +} from 'data/reports/v2/auth.config' +import { useReportDateRange } from 'hooks/misc/useReportDateRange' +import { useRouter } from 'next/router' +import { parseAsJson, useQueryState } from 'nuqs' +import type { NextPageWithLayout } from 'types' const AuthReport: NextPageWithLayout = () => { return ( diff --git a/apps/studio/pages/project/[ref]/reports/edge-functions.tsx b/apps/studio/pages/project/[ref]/reports/edge-functions.tsx index 3cbcc7e27b2..d56ba6aa5f8 100644 --- a/apps/studio/pages/project/[ref]/reports/edge-functions.tsx +++ b/apps/studio/pages/project/[ref]/reports/edge-functions.tsx @@ -32,8 +32,8 @@ import { useReportDateRange } from 'hooks/misc/useReportDateRange' import { EDGE_FUNCTION_REGIONS } from 'components/interfaces/Reports/Reports.constants' import { ReportSettings } from 'components/ui/Charts/ReportSettings' import { BASE_PATH } from 'lib/constants' +import { parseAsJson, useQueryState } from 'nuqs' import type { NextPageWithLayout } from 'types' -import { useQueryState, parseAsJson } from 'nuqs' const EdgeFunctionsReportV2: NextPageWithLayout = () => { return ( diff --git a/apps/studio/pages/project/[ref]/reports/index.tsx b/apps/studio/pages/project/[ref]/reports/index.tsx index 3fa77b7124c..f65437c225a 100644 --- a/apps/studio/pages/project/[ref]/reports/index.tsx +++ b/apps/studio/pages/project/[ref]/reports/index.tsx @@ -7,11 +7,11 @@ import { CreateReportModal } from 'components/interfaces/Reports/CreateReportMod import DefaultLayout from 'components/layouts/DefaultLayout' import ReportsLayout from 'components/layouts/ReportsLayout/ReportsLayout' import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' -import { Loading } from 'components/ui/Loading' import { useContentQuery } from 'data/content/content-query' import { useAsyncCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useProfile } from 'lib/profile' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' export const UserReportPage: NextPageWithLayout = () => { const router = useRouter() @@ -48,7 +48,7 @@ export const UserReportPage: NextPageWithLayout = () => { return (
{isLoading ? ( - + ) : ( <> { return ( diff --git a/apps/studio/pages/project/[ref]/reports/query-performance.tsx b/apps/studio/pages/project/[ref]/reports/query-performance.tsx index f0a78fb3f4d..ebd26722860 100644 --- a/apps/studio/pages/project/[ref]/reports/query-performance.tsx +++ b/apps/studio/pages/project/[ref]/reports/query-performance.tsx @@ -1,25 +1,27 @@ import { parseAsArrayOf, parseAsString, useQueryStates } from 'nuqs' import { useParams } from 'common' -import { EnableIndexAdvisorButton } from 'components/interfaces/QueryPerformance/IndexAdvisor/EnableIndexAdvisorButton' import { useIndexAdvisorStatus } from 'components/interfaces/QueryPerformance/hooks/useIsIndexAdvisorStatus' import { useQueryPerformanceSort } from 'components/interfaces/QueryPerformance/hooks/useQueryPerformanceSort' +import { EnableIndexAdvisorButton } from 'components/interfaces/QueryPerformance/IndexAdvisor/EnableIndexAdvisorButton' import { QueryPerformance } from 'components/interfaces/QueryPerformance/QueryPerformance' -import { PRESET_CONFIG } from 'components/interfaces/Reports/Reports.constants' +import { + PRESET_CONFIG, + REPORT_DATERANGE_HELPER_LABELS, +} from 'components/interfaces/Reports/Reports.constants' import { useQueryPerformanceQuery } from 'components/interfaces/Reports/Reports.queries' import { Presets } from 'components/interfaces/Reports/Reports.types' import { queriesFactory } from 'components/interfaces/Reports/Reports.utils' -import ReportsLayout from 'components/layouts/ReportsLayout/ReportsLayout' +import { LogsDatePicker } from 'components/interfaces/Settings/Logs/Logs.DatePickers' import DefaultLayout from 'components/layouts/DefaultLayout' +import ReportsLayout from 'components/layouts/ReportsLayout/ReportsLayout' import DatabaseSelector from 'components/ui/DatabaseSelector' import { DocsButton } from 'components/ui/DocsButton' import { FormHeader } from 'components/ui/Forms/FormHeader' +import { useReportDateRange } from 'hooks/misc/useReportDateRange' +import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { DOCS_URL } from 'lib/constants' import type { NextPageWithLayout } from 'types' -import { LogsDatePicker } from 'components/interfaces/Settings/Logs/Logs.DatePickers' -import { useReportDateRange } from 'hooks/misc/useReportDateRange' -import { REPORT_DATERANGE_HELPER_LABELS } from 'components/interfaces/Reports/Reports.constants' -import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' const QueryPerformanceReport: NextPageWithLayout = () => { const { ref } = useParams() diff --git a/apps/studio/pages/project/[ref]/settings/general.tsx b/apps/studio/pages/project/[ref]/settings/general.tsx index 392985ff6d2..2bcf27c0244 100644 --- a/apps/studio/pages/project/[ref]/settings/general.tsx +++ b/apps/studio/pages/project/[ref]/settings/general.tsx @@ -1,3 +1,4 @@ +import { IS_PLATFORM } from 'common' import { subscriptionHasHipaaAddon } from 'components/interfaces/Billing/Subscription/Subscription.utils' import { ComplianceConfig } from 'components/interfaces/Settings/General/ComplianceConfig/ProjectComplianceMode' import { CustomDomainConfig } from 'components/interfaces/Settings/General/CustomDomainConfig/CustomDomainConfig' @@ -11,10 +12,9 @@ import { useOrgSubscriptionQuery } from 'data/subscriptions/org-subscription-que import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import type { NextPageWithLayout } from 'types' import { useRouter } from 'next/router' import { useEffect } from 'react' -import { IS_PLATFORM } from 'common' +import type { NextPageWithLayout } from 'types' const ProjectSettings: NextPageWithLayout = () => { const { data: project } = useSelectedProjectQuery() diff --git a/apps/studio/pages/project/[ref]/sql/[id].tsx b/apps/studio/pages/project/[ref]/sql/[id].tsx index 307a973517b..c09873fd356 100644 --- a/apps/studio/pages/project/[ref]/sql/[id].tsx +++ b/apps/studio/pages/project/[ref]/sql/[id].tsx @@ -1,8 +1,8 @@ +import { usePrevious } from '@uidotdev/usehooks' import Link from 'next/link' import { useRouter } from 'next/router' import { useEffect } from 'react' -import { usePrevious } from '@uidotdev/usehooks' import { useParams } from 'common/hooks/useParams' import { SQLEditor } from 'components/interfaces/SQLEditor/SQLEditor' import DefaultLayout from 'components/layouts/DefaultLayout' diff --git a/apps/studio/pages/sign-in-mfa.tsx b/apps/studio/pages/sign-in-mfa.tsx index 7c67408c4ae..33a09078d4e 100644 --- a/apps/studio/pages/sign-in-mfa.tsx +++ b/apps/studio/pages/sign-in-mfa.tsx @@ -7,12 +7,12 @@ import { toast } from 'sonner' import { getAccessToken, useParams } from 'common' import { SignInMfaForm } from 'components/interfaces/SignIn/SignInMfaForm' import SignInLayout from 'components/layouts/SignInLayout/SignInLayout' -import { Loading } from 'components/ui/Loading' import { useAddLoginEvent } from 'data/misc/audit-login-mutation' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import useLatest from 'hooks/misc/useLatest' import { auth, buildPathWithParams, getReturnToPath } from 'lib/gotrue' import type { NextPageWithLayout } from 'types' +import { LogoLoader } from 'ui' const SignInMfaPage: NextPageWithLayout = () => { const router = useRouter() @@ -90,7 +90,7 @@ const SignInMfaPage: NextPageWithLayout = () => { if (loading) { return (
- +
) } diff --git a/apps/studio/pages/support/new.tsx b/apps/studio/pages/support/new.tsx index 8b3d879ba0c..7330213b826 100644 --- a/apps/studio/pages/support/new.tsx +++ b/apps/studio/pages/support/new.tsx @@ -2,7 +2,7 @@ import { SupportFormPage } from 'components/interfaces/Support/SupportFormPage' import AppLayout from 'components/layouts/AppLayout/AppLayout' import DefaultLayout from 'components/layouts/DefaultLayout' import { withAuth } from 'hooks/misc/withAuth' -import { NextPageWithLayout } from 'types' +import type { NextPageWithLayout } from 'types' const SupportPage: NextPageWithLayout = () => { return diff --git a/apps/studio/state/sql-editor-v2.ts b/apps/studio/state/sql-editor-v2.ts index afdc7aed40e..c9a4b3a6a0f 100644 --- a/apps/studio/state/sql-editor-v2.ts +++ b/apps/studio/state/sql-editor-v2.ts @@ -1,4 +1,5 @@ import { debounce, memoize } from 'lodash' +import { useMemo } from 'react' import { toast } from 'sonner' import { proxy, snapshot, subscribe, useSnapshot } from 'valtio' import { devtools, proxyMap } from 'valtio/utils' @@ -10,7 +11,6 @@ import { createSQLSnippetFolder } from 'data/content/sql-folder-create-mutation' import { updateSQLSnippetFolder } from 'data/content/sql-folder-update-mutation' import { Snippet, SnippetFolder } from 'data/content/sql-folders-query' import { getQueryClient } from 'data/query-client' -import { useMemo } from 'react' import { SqlSnippets } from 'types' export type StateSnippetFolder = {