Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions site/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,9 @@
"vite-plugin-turbosnap": "1.0.2"
},
"browserslist": [
"chrome 66",
"firefox 63",
"edge 79",
"safari 15.4"
"chrome 110",
"firefox 111",
"safari 16.0"
],
"resolutions": {
"optionator": "0.9.3",
Expand Down
2 changes: 1 addition & 1 deletion site/src/AppRouter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import {
BrowserRouter as Router,
Navigate,
} from "react-router-dom";
import { DashboardLayout } from "./modules/dashboard/DashboardLayout";
import { RequireAuth } from "./contexts/auth/RequireAuth";
import { DashboardLayout } from "./components/Dashboard/DashboardLayout";
import { FullScreenLoader } from "./components/Loader/FullScreenLoader";
import AuditPage from "./pages/AuditPage/AuditPage";
import { DeploySettingsLayout } from "./pages/DeploySettingsPage/DeploySettingsLayout";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { type FC } from "react";
import type { Workspace } from "api/typesGenerated";
import { displayDormantDeletion } from "utils/dormant";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useDashboard } from "modules/dashboard/useDashboard";

interface DormantDeletionTextProps {
workspace: Workspace;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
MockAppearanceConfig,
} from "testHelpers/entities";
import { WorkspaceStatusBadge } from "./WorkspaceStatusBadge";
import { DashboardProviderContext } from "components/Dashboard/DashboardProvider";
import { DashboardContext } from "modules/dashboard/DashboardProvider";
import type { Meta, StoryObj } from "@storybook/react";

const MockedAppearance = {
Expand All @@ -29,7 +29,7 @@ const meta: Meta<typeof WorkspaceStatusBadge> = {
component: WorkspaceStatusBadge,
decorators: [
(Story) => (
<DashboardProviderContext.Provider
<DashboardContext.Provider
value={{
buildInfo: MockBuildInfo,
entitlements: MockEntitlementsWithScheduling,
Expand All @@ -38,7 +38,7 @@ const meta: Meta<typeof WorkspaceStatusBadge> = {
}}
>
<Story />
</DashboardProviderContext.Provider>
</DashboardContext.Provider>
),
],
};
Expand Down
2 changes: 1 addition & 1 deletion site/src/contexts/auth/RequireAuth.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { Outlet, Navigate, useLocation } from "react-router-dom";
import { embedRedirect } from "utils/redirect";
import { isApiError } from "api/errors";
import { ProxyProvider } from "contexts/ProxyContext";
import { DashboardProvider } from "components/Dashboard/DashboardProvider";
import { DashboardProvider } from "modules/dashboard/DashboardProvider";
import { FullScreenLoader } from "components/Loader/FullScreenLoader";
import { useAuth } from "./useAuth";

Expand Down
1 change: 0 additions & 1 deletion site/src/hooks/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
export * from "./useClickable";
export * from "./useClickableTableRow";
export * from "./useClipboard";
export * from "./useFeatureVisibility";
export * from "./usePagination";
export * from "./useTab";
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import Button from "@mui/material/Button";
import InfoOutlined from "@mui/icons-material/InfoOutlined";
import { type FC, type HTMLAttributes, Suspense } from "react";
import { Outlet } from "react-router-dom";
import { LicenseBanner } from "modules/dashboard/LicenseBanner/LicenseBanner";
import { ServiceBanner } from "modules/dashboard/ServiceBanner/ServiceBanner";
import { usePermissions } from "contexts/auth/usePermissions";
import { LicenseBanner } from "components/Dashboard/LicenseBanner/LicenseBanner";
import { Loader } from "components/Loader/Loader";
import { ServiceBanner } from "components/Dashboard/ServiceBanner/ServiceBanner";
import { dashboardContentBottomPadding } from "theme/constants";
import { docs } from "utils/docs";
import { Navbar } from "./Navbar/Navbar";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ import {
type PropsWithChildren,
createContext,
useCallback,
useContext,
useState,
} from "react";
import { appearance } from "api/queries/appearance";
Expand All @@ -27,16 +26,16 @@ interface Appearance {
setPreview: (config: AppearanceConfig) => void;
}

interface DashboardProviderValue {
export interface DashboardValue {
buildInfo: BuildInfoResponse;
entitlements: Entitlements;
experiments: Experiments;
appearance: Appearance;
}

export const DashboardProviderContext = createContext<
DashboardProviderValue | undefined
>(undefined);
export const DashboardContext = createContext<DashboardValue | undefined>(
undefined,
);

export const DashboardProvider: FC<PropsWithChildren> = ({ children }) => {
const buildInfoQuery = useQuery(buildInfo());
Expand Down Expand Up @@ -83,7 +82,7 @@ export const DashboardProvider: FC<PropsWithChildren> = ({ children }) => {
}

return (
<DashboardProviderContext.Provider
<DashboardContext.Provider
value={{
buildInfo: buildInfoQuery.data,
entitlements: entitlementsQuery.data,
Expand All @@ -96,23 +95,6 @@ export const DashboardProvider: FC<PropsWithChildren> = ({ children }) => {
}}
>
{children}
</DashboardProviderContext.Provider>
</DashboardContext.Provider>
);
};

export const useDashboard = (): DashboardProviderValue => {
const context = useContext(DashboardProviderContext);

if (!context) {
throw new Error(
"useDashboard only can be used inside of DashboardProvider",
);
}

return context;
};

export const useIsWorkspaceActionsEnabled = (): boolean => {
const { entitlements } = useDashboard();
return entitlements.features["advanced_template_scheduling"].enabled;
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type FC } from "react";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useDashboard } from "modules/dashboard/useDashboard";
import { LicenseBannerView } from "./LicenseBannerView";

export const LicenseBanner: FC = () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import { useAuth } from "contexts/auth/useAuth";
import { useMe } from "contexts/auth/useMe";
import { usePermissions } from "contexts/auth/usePermissions";
import { useProxy } from "contexts/ProxyContext";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useFeatureVisibility } from "hooks/useFeatureVisibility";
import { useDashboard } from "modules/dashboard/useDashboard";
import { useFeatureVisibility } from "../useFeatureVisibility";
import { NavbarView } from "./NavbarView";

export const Navbar: FC = () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { type FC } from "react";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useDashboard } from "modules/dashboard/useDashboard";
import { ServiceBannerView } from "./ServiceBannerView";

export const ServiceBanner: FC = () => {
Expand Down
14 changes: 14 additions & 0 deletions site/src/modules/dashboard/useDashboard.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { useContext } from "react";
import { DashboardContext, type DashboardValue } from "./DashboardProvider";

export const useDashboard = (): DashboardValue => {
const context = useContext(DashboardContext);

if (!context) {
throw new Error(
"useDashboard only can be used inside of DashboardProvider",
);
}

return context;
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { FeatureName } from "api/typesGenerated";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useDashboard } from "./useDashboard";
import { selectFeatureVisibility } from "utils/entitlements";

export const useFeatureVisibility = (): Record<FeatureName, boolean> => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { act, renderHook, waitFor } from "@testing-library/react";
import { useUpdateCheck } from "./useUpdateCheck";
import { QueryClient, QueryClientProvider } from "react-query";
import { type FC, type PropsWithChildren } from "react";
import { QueryClient, QueryClientProvider } from "react-query";
import { rest } from "msw";
import { MockUpdateCheck } from "testHelpers/entities";
import { server } from "testHelpers/server";
import { useUpdateCheck } from "./useUpdateCheck";

const createWrapper = (): FC<PropsWithChildren> => {
const queryClient = new QueryClient();
Expand Down
12 changes: 6 additions & 6 deletions site/src/pages/AuditPage/AuditPage.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { isNonInitialPage } from "components/PaginationWidget/utils";
import { useFeatureVisibility } from "hooks/useFeatureVisibility";
import { FC } from "react";
import { type FC } from "react";
import { Helmet } from "react-helmet-async";
import { useSearchParams } from "react-router-dom";
import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility";
import { pageTitle } from "utils/page";
import { AuditPageView } from "./AuditPageView";
import { paginatedAudits } from "api/queries/audits";
import { usePaginatedQuery } from "hooks/usePaginatedQuery";
import { useUserFilterMenu } from "components/Filter/UserFilter";
import { isNonInitialPage } from "components/PaginationWidget/utils";
import { useFilter } from "components/Filter/filter";
import { useActionFilterMenu, useResourceTypeFilterMenu } from "./AuditFilter";
import { usePaginatedQuery } from "hooks/usePaginatedQuery";
import { paginatedAudits } from "api/queries/audits";
import { AuditPageView } from "./AuditPageView";

const AuditPage: FC = () => {
const { audit_log: isAuditLogVisible } = useFeatureVisibility();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ import {
createTemplate,
} from "api/queries/templates";
import { useOrganizationId } from "contexts/auth/useOrganizationId";
import { useDashboard } from "modules/dashboard/useDashboard";
import { ErrorAlert } from "components/Alert/ErrorAlert";
import { Loader } from "components/Loader/Loader";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { CreateTemplateForm } from "./CreateTemplateForm";
import { firstVersionFromFile, getFormPermissions, newTemplate } from "./utils";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import {
templateVersionVariables,
} from "api/queries/templates";
import { useOrganizationId } from "contexts/auth/useOrganizationId";
import { useDashboard } from "modules/dashboard/useDashboard";
import { ErrorAlert } from "components/Alert/ErrorAlert";
import { Loader } from "components/Loader/Loader";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { CreateTemplateForm } from "./CreateTemplateForm";
import {
firstVersionFromExample,
Expand Down
2 changes: 1 addition & 1 deletion site/src/pages/CreateTemplatePage/UploadTemplateView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
} from "api/queries/templates";
import { uploadFile } from "api/queries/files";
import { useOrganizationId } from "contexts/auth/useOrganizationId";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useDashboard } from "modules/dashboard/useDashboard";
import { CreateTemplateForm } from "./CreateTemplateForm";
import { firstVersionFromFile, getFormPermissions, newTemplate } from "./utils";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { UpdateAppearanceConfig } from "api/typesGenerated";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { FC } from "react";
import { type FC } from "react";
import { Helmet } from "react-helmet-async";
import { pageTitle } from "utils/page";
import { AppearanceSettingsPageView } from "./AppearanceSettingsPageView";
import { useMutation, useQueryClient } from "react-query";
import type { UpdateAppearanceConfig } from "api/typesGenerated";
import { useDashboard } from "modules/dashboard/useDashboard";
import { pageTitle } from "utils/page";
import { updateAppearance } from "api/queries/appearance";
import { getErrorMessage } from "api/errors";
import { displayError, displaySuccess } from "components/GlobalSnackbar/utils";
import { AppearanceSettingsPageView } from "./AppearanceSettingsPageView";

// ServiceBanner is unlike the other Deployment Settings pages because it
// implements a form, whereas the others are read-only. We make this
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { type FC } from "react";
import { Helmet } from "react-helmet-async";
import { useQuery } from "react-query";
import { getApps } from "api/queries/oauth2";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { FC } from "react";
import { Helmet } from "react-helmet-async";
import { useDashboard } from "modules/dashboard/useDashboard";
import { pageTitle } from "utils/page";
import OAuth2AppsSettingsPageView from "./OAuth2AppsSettingsPageView";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { type FC } from "react";
import { Helmet } from "react-helmet-async";
import { pageTitle } from "utils/page";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useDashboard } from "modules/dashboard/useDashboard";
import { useDeploySettings } from "../DeploySettingsLayout";
import { ObservabilitySettingsPageView } from "./ObservabilitySettingsPageView";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { type FC } from "react";
import { Helmet } from "react-helmet-async";
import { pageTitle } from "utils/page";
import { useDashboard } from "components/Dashboard/DashboardProvider";
import { useDashboard } from "modules/dashboard/useDashboard";
import { SecuritySettingsPageView } from "./SecuritySettingsPageView";
import { useDeploySettings } from "../DeploySettingsLayout";

Expand Down
4 changes: 2 additions & 2 deletions site/src/pages/GroupsPage/GroupsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import { getErrorMessage } from "api/errors";
import { groups } from "api/queries/groups";
import { useOrganizationId } from "contexts/auth/useOrganizationId";
import { usePermissions } from "contexts/auth/usePermissions";
import { useFeatureVisibility } from "hooks/useFeatureVisibility";
import { pageTitle } from "utils/page";
import { useFeatureVisibility } from "modules/dashboard/useFeatureVisibility";
import { displayError } from "components/GlobalSnackbar/utils";
import { pageTitle } from "utils/page";
import GroupsPageView from "./GroupsPageView";

export const GroupsPage: FC = () => {
Expand Down
4 changes: 3 additions & 1 deletion site/src/pages/HealthPage/AccessURLPage.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ const meta: Meta = {
export default meta;
type Story = StoryObj;

export const Default: Story = {};
const Example: Story = {};

export { Example as AccessURL };
4 changes: 3 additions & 1 deletion site/src/pages/HealthPage/DERPPage.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ const meta: Meta = {
export default meta;
type Story = StoryObj;

export const Default: Story = {};
const Example: Story = {};

export { Example as DERP };
4 changes: 3 additions & 1 deletion site/src/pages/HealthPage/DERPRegionPage.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,6 @@ const meta: Meta = {
export default meta;
type Story = StoryObj;

export const Default: Story = {};
const Example: Story = {};

export { Example as DERPRegion };
4 changes: 3 additions & 1 deletion site/src/pages/HealthPage/DatabasePage.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ const meta: Meta = {
export default meta;
type Story = StoryObj;

export const Default: Story = {};
const Example: Story = {};

export { Example as Database };
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy