Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf74ef14

Browse files
authored
refactor: reorganize auth components and hooks (#11717)
1 parentf02561a commitf74ef14

File tree

57 files changed

+254
-252
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+254
-252
lines changed

‎site/.eslintrc.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,6 @@ rules:
170170
react/jsx-uses-react:"off"
171171
react/no-unknown-property:["error", { ignore: ["css"] }]
172172
react/react-in-jsx-scope:"off"
173-
"unicorn/explicit-length-check":"error"
174173
# https://github.com/jsx-eslint/eslint-plugin-react/issues/2628#issuecomment-984160944
175174
no-restricted-syntax:
176175
[

‎site/src/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { type FC, type ReactNode, useEffect, useState } from "react";
33
import{HelmetProvider}from"react-helmet-async";
44
import{AppRouter}from"./AppRouter";
55
import{ThemeProvider}from"./contexts/ThemeProvider";
6-
import{AuthProvider}from"./contexts/AuthProvider/AuthProvider";
6+
import{AuthProvider}from"./contexts/auth/AuthProvider";
77
import{ErrorBoundary}from"./components/ErrorBoundary/ErrorBoundary";
88
import{GlobalSnackbar}from"./components/GlobalSnackbar/GlobalSnackbar";
99
import"./theme/globalFonts";

‎site/src/AppRouter.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ import {
55
BrowserRouterasRouter,
66
Navigate,
77
}from"react-router-dom";
8+
import{RequireAuth}from"./contexts/auth/RequireAuth";
89
import{DashboardLayout}from"./components/Dashboard/DashboardLayout";
9-
import{DeploySettingsLayout}from"./pages/DeploySettingsPage/DeploySettingsLayout";
1010
import{FullScreenLoader}from"./components/Loader/FullScreenLoader";
11-
import{RequireAuth}from"./components/RequireAuth/RequireAuth";
12-
import{UsersLayout}from"./pages/UsersPage/UsersLayout";
1311
importAuditPagefrom"./pages/AuditPage/AuditPage";
12+
import{DeploySettingsLayout}from"./pages/DeploySettingsPage/DeploySettingsLayout";
1413
importLoginPagefrom"./pages/LoginPage/LoginPage";
1514
import{SetupPage}from"./pages/SetupPage/SetupPage";
1615
import{TemplateLayout}from"./pages/TemplatePage/TemplateLayout";
1716
import{HealthLayout}from"./pages/HealthPage/HealthLayout";
1817
importTemplatesPagefrom"./pages/TemplatesPage/TemplatesPage";
18+
import{UsersLayout}from"./pages/UsersPage/UsersLayout";
1919
importUsersPagefrom"./pages/UsersPage/UsersPage";
2020
importWorkspacesPagefrom"./pages/WorkspacesPage/WorkspacesPage";
2121
importUserSettingsLayoutfrom"./pages/UserSettingsPage/Layout";

‎site/src/components/Dashboard/DashboardLayout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import Button from "@mui/material/Button";
44
importInfoOutlinedfrom"@mui/icons-material/InfoOutlined";
55
import{typeFC,typeHTMLAttributes,Suspense}from"react";
66
import{Outlet}from"react-router-dom";
7+
import{usePermissions}from"contexts/auth/usePermissions";
78
import{LicenseBanner}from"components/Dashboard/LicenseBanner/LicenseBanner";
89
import{Loader}from"components/Loader/Loader";
910
import{ServiceBanner}from"components/Dashboard/ServiceBanner/ServiceBanner";
10-
import{usePermissions}from"hooks/usePermissions";
1111
import{dashboardContentBottomPadding}from"theme/constants";
1212
import{docs}from"utils/docs";
1313
import{Navbar}from"./Navbar/Navbar";

‎site/src/components/Dashboard/DeploymentBanner/DeploymentBanner.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import{typeFC}from"react";
22
import{useQuery}from"react-query";
3+
import{health}from"api/queries/debug";
34
import{deploymentStats}from"api/queries/deployment";
4-
import{usePermissions}from"hooks/usePermissions";
5+
import{usePermissions}from"contexts/auth/usePermissions";
56
import{DeploymentBannerView}from"./DeploymentBannerView";
6-
import{health}from"api/queries/debug";
77

88
exportconstDeploymentBanner:FC=()=>{
99
constpermissions=usePermissions();

‎site/src/components/Dashboard/Navbar/Navbar.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import{typeFC}from"react";
2-
import{useAuth}from"contexts/AuthProvider/AuthProvider";
2+
import{useAuth}from"contexts/auth/useAuth";
3+
import{useMe}from"contexts/auth/useMe";
4+
import{usePermissions}from"contexts/auth/usePermissions";
35
import{useProxy}from"contexts/ProxyContext";
46
import{useDashboard}from"components/Dashboard/DashboardProvider";
57
import{useFeatureVisibility}from"hooks/useFeatureVisibility";
6-
import{useMe}from"hooks/useMe";
7-
import{usePermissions}from"hooks/usePermissions";
88
import{NavbarView}from"./NavbarView";
99

1010
exportconstNavbar:FC=()=>{

‎site/src/components/Dashboard/Navbar/NavbarView.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@ import Button from "@mui/material/Button";
77
importMenuItemfrom"@mui/material/MenuItem";
88
importKeyboardArrowDownOutlinedfrom"@mui/icons-material/KeyboardArrowDownOutlined";
99
importMenuIconfrom"@mui/icons-material/Menu";
10+
import{visuallyHidden}from"@mui/utils";
1011
import{css,typeInterpolation,typeTheme,useTheme}from"@emotion/react";
1112
import{typeFC,typeReactNode,useRef,useState}from"react";
1213
import{NavLink,useLocation,useNavigate}from"react-router-dom";
1314
import{BUTTON_SM_HEIGHT,navHeight}from"theme/constants";
1415
importtype*asTypesGenfrom"api/typesGenerated";
16+
import{usePermissions}from"contexts/auth/usePermissions";
1517
importtype{ProxyContextValue}from"contexts/ProxyContext";
18+
import{Abbr}from"components/Abbr/Abbr";
1619
import{displayError}from"components/GlobalSnackbar/utils";
1720
import{ProxyStatusLatency}from"components/ProxyStatusLatency/ProxyStatusLatency";
1821
import{CoderIcon}from"components/Icons/CoderIcon";
19-
import{usePermissions}from"hooks/usePermissions";
2022
import{UserDropdown}from"./UserDropdown/UserDropdown";
21-
import{visuallyHidden}from"@mui/utils";
22-
import{Abbr}from"components/Abbr/Abbr";
2323

2424
exportconstUSERS_LINK=`/users?filter=${encodeURIComponent(
2525
"status:active",

‎site/src/components/Filter/UserFilter.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import{typeFC}from"react";
2-
import{useMe}from"hooks";
3-
import{BaseOption}from"./options";
42
import{getUsers}from"api/api";
5-
import{UseFilterMenuOptions,useFilterMenu}from"./menu";
3+
import{useMe}from"contexts/auth/useMe";
4+
import{UserAvatar}from"../UserAvatar/UserAvatar";
65
import{FilterSearchMenu,OptionItem}from"./filter";
7-
import{UserAvatar}from"components/UserAvatar/UserAvatar";
6+
import{UseFilterMenuOptions,useFilterMenu}from"./menu";
7+
import{BaseOption}from"./options";
88

99
exporttypeUserOption=BaseOption&{
1010
avatarUrl?:string;

‎site/src/contexts/ProxyContext.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import{useQuery}from"react-query";
2-
import{getWorkspaceProxies,getWorkspaceProxyRegions}from"api/api";
3-
import{Region,WorkspaceProxy}from"api/typesGenerated";
41
import{
52
createContext,
6-
FC,
7-
PropsWithChildren,
3+
typeFC,
4+
typePropsWithChildren,
85
useCallback,
96
useContext,
107
useEffect,
118
useState,
129
}from"react";
10+
import{useQuery}from"react-query";
11+
import{getWorkspaceProxies,getWorkspaceProxyRegions}from"api/api";
12+
importtype{Region,WorkspaceProxy}from"api/typesGenerated";
13+
import{usePermissions}from"contexts/auth/usePermissions";
1314
import{ProxyLatencyReport,useProxyLatency}from"./useProxyLatency";
14-
import{usePermissions}from"hooks/usePermissions";
1515

1616
exportinterfaceProxyContextValue{
1717
// proxy is **always** the workspace proxy that should be used.

‎site/src/contexts/ThemeProvider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
useState,
1515
}from"react";
1616
importthemes,{DEFAULT_THEME,typeTheme}from"theme";
17-
import{AuthContext}from"./AuthProvider/AuthProvider";
17+
import{AuthContext}from"./auth/AuthProvider";
1818

1919
/**
2020
*

‎site/src/contexts/AuthProvider/AuthProvider.tsxrenamed to‎site/src/contexts/auth/AuthProvider.tsx

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {
33
typeFC,
44
typePropsWithChildren,
55
useCallback,
6-
useContext,
76
}from"react";
87
import{useMutation,useQuery,useQueryClient}from"react-query";
98
import{checkAuthorization}from"api/queries/authCheck";
@@ -129,13 +128,3 @@ export const AuthProvider: FC<PropsWithChildren> = ({ children }) => {
129128
</AuthContext.Provider>
130129
);
131130
};
132-
133-
exportconstuseAuth=()=>{
134-
constcontext=useContext(AuthContext);
135-
136-
if(!context){
137-
thrownewError("useAuth should be used inside of <AuthProvider />");
138-
}
139-
140-
returncontext;
141-
};

‎site/src/components/RequireAuth/RequireAuth.tsxrenamed to‎site/src/contexts/auth/RequireAuth.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { type FC, useEffect } from "react";
33
import{Outlet,Navigate,useLocation}from"react-router-dom";
44
import{embedRedirect}from"utils/redirect";
55
import{isApiError}from"api/errors";
6-
import{useAuth}from"contexts/AuthProvider/AuthProvider";
76
import{ProxyProvider}from"contexts/ProxyContext";
8-
import{DashboardProvider}from"../Dashboard/DashboardProvider";
9-
import{FullScreenLoader}from"../Loader/FullScreenLoader";
7+
import{DashboardProvider}from"components/Dashboard/DashboardProvider";
8+
import{FullScreenLoader}from"components/Loader/FullScreenLoader";
9+
import{useAuth}from"./useAuth";
1010

1111
exportconstRequireAuth:FC=()=>{
1212
const{ signOut, isSigningOut, isSignedOut, isSignedIn, isLoading}=

‎site/src/components/RequirePermission/RequirePermission.tsxrenamed to‎site/src/contexts/auth/RequirePermission.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import{FC}from"react";
1+
import{typeFC,typeReactNode}from"react";
22
import{Navigate}from"react-router-dom";
33

44
exportinterfaceRequirePermissionProps{
5-
children:JSX.Element;
5+
children?:ReactNode;
66
isFeatureVisible:boolean;
77
}
88

@@ -16,6 +16,6 @@ export const RequirePermission: FC<RequirePermissionProps> = ({
1616
if(!isFeatureVisible){
1717
return<Navigateto="/workspaces"/>;
1818
}else{
19-
returnchildren;
19+
return<>{children}</>;
2020
}
2121
};

‎site/src/contexts/auth/useAuth.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import{useContext}from"react";
2+
import{AuthContext}from"./AuthProvider";
3+
4+
exportconstuseAuth=()=>{
5+
constcontext=useContext(AuthContext);
6+
7+
if(!context){
8+
thrownewError("useAuth should be used inside of <AuthProvider />");
9+
}
10+
11+
returncontext;
12+
};

‎site/src/hooks/useMe.tsrenamed to‎site/src/contexts/auth/useMe.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
importtype{User}from"api/typesGenerated";
2-
import{useAuth}from"contexts/AuthProvider/AuthProvider";
2+
import{useAuth}from"./useAuth";
33

44
exportconstuseMe=():User=>{
55
const{ user}=useAuth();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import{useMe}from"./useMe";
2+
3+
exportconstuseOrganizationId=():string=>{
4+
constme=useMe();
5+
6+
if(me.organization_ids.length<1){
7+
thrownewError("User is not a member of any organizations");
8+
}
9+
10+
returnme.organization_ids[0];
11+
};

‎site/src/hooks/usePermissions.tsrenamed to‎site/src/contexts/auth/usePermissions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import{useAuth}from"contexts/AuthProvider/AuthProvider";
2-
importtype{Permissions}from"contexts/AuthProvider/permissions";
1+
import{useAuth}from"./useAuth";
2+
importtype{Permissions}from"./permissions";
33

44
exportconstusePermissions=():Permissions=>{
55
const{ permissions}=useAuth();

‎site/src/hooks/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,5 @@ export * from "./useClickable";
22
export*from"./useClickableTableRow";
33
export*from"./useClipboard";
44
export*from"./useFeatureVisibility";
5-
export*from"./useMe";
6-
export*from"./useOrganizationId";
75
export*from"./usePagination";
8-
export*from"./usePermissions";
96
export*from"./useTab";

‎site/src/hooks/useOrganizationId.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

‎site/src/pages/CreateTemplatePage/DuplicateTemplateView.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import{typeFC}from"react";
12
import{useQuery,useMutation}from"react-query";
3+
import{useNavigate,useSearchParams}from"react-router-dom";
24
import{
35
templateVersionLogs,
46
templateByName,
@@ -7,15 +9,14 @@ import {
79
JobError,
810
createTemplate,
911
}from"api/queries/templates";
12+
import{useOrganizationId}from"contexts/auth/useOrganizationId";
1013
import{ErrorAlert}from"components/Alert/ErrorAlert";
11-
import{useOrganizationId}from"hooks";
12-
import{useNavigate,useSearchParams}from"react-router-dom";
13-
import{CreateTemplateForm}from"./CreateTemplateForm";
1414
import{Loader}from"components/Loader/Loader";
1515
import{useDashboard}from"components/Dashboard/DashboardProvider";
16+
import{CreateTemplateForm}from"./CreateTemplateForm";
1617
import{firstVersionFromFile,getFormPermissions,newTemplate}from"./utils";
1718

18-
exportconstDuplicateTemplateView=()=>{
19+
exportconstDuplicateTemplateView:FC=()=>{
1920
constnavigate=useNavigate();
2021
constorganizationId=useOrganizationId();
2122
const[searchParams]=useSearchParams();

‎site/src/pages/CreateTemplatePage/ImportStarterTemplateView.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
1+
import{typeFC}from"react";
12
import{useQuery,useMutation}from"react-query";
3+
import{useNavigate,useSearchParams}from"react-router-dom";
24
import{
35
templateVersionLogs,
46
JobError,
57
createTemplate,
68
templateExamples,
79
templateVersionVariables,
810
}from"api/queries/templates";
11+
import{useOrganizationId}from"contexts/auth/useOrganizationId";
912
import{ErrorAlert}from"components/Alert/ErrorAlert";
10-
import{useOrganizationId}from"hooks";
11-
import{useNavigate,useSearchParams}from"react-router-dom";
12-
import{CreateTemplateForm}from"./CreateTemplateForm";
1313
import{Loader}from"components/Loader/Loader";
1414
import{useDashboard}from"components/Dashboard/DashboardProvider";
15+
import{CreateTemplateForm}from"./CreateTemplateForm";
1516
import{
1617
firstVersionFromExample,
1718
getFormPermissions,
1819
newTemplate,
1920
}from"./utils";
2021

21-
exportconstImportStarterTemplateView=()=>{
22+
exportconstImportStarterTemplateView:FC=()=>{
2223
constnavigate=useNavigate();
2324
constorganizationId=useOrganizationId();
2425
const[searchParams]=useSearchParams();

‎site/src/pages/CreateTemplatePage/UploadTemplateView.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
import{useQuery,useMutation}from"react-query";
2+
import{useNavigate}from"react-router-dom";
23
import{
34
templateVersionLogs,
45
JobError,
56
createTemplate,
67
templateVersionVariables,
78
}from"api/queries/templates";
8-
import{useOrganizationId}from"hooks";
9-
import{useNavigate}from"react-router-dom";
10-
import{CreateTemplateForm}from"./CreateTemplateForm";
9+
import{uploadFile}from"api/queries/files";
10+
import{useOrganizationId}from"contexts/auth/useOrganizationId";
1111
import{useDashboard}from"components/Dashboard/DashboardProvider";
12+
import{CreateTemplateForm}from"./CreateTemplateForm";
1213
import{firstVersionFromFile,getFormPermissions,newTemplate}from"./utils";
13-
import{uploadFile}from"api/queries/files";
1414

1515
exportconstUploadTemplateView=()=>{
1616
constnavigate=useNavigate();

‎site/src/pages/CreateUserPage/CreateUserPage.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import{useOrganizationId}from"hooks/useOrganizationId";
2-
import{FC}from"react";
1+
import{typeFC}from"react";
32
import{Helmet}from"react-helmet-async";
3+
import{useMutation,useQuery,useQueryClient}from"react-query";
44
import{useNavigate}from"react-router-dom";
5-
import{CreateUserForm}from"./CreateUserForm";
6-
import{Margins}from"components/Margins/Margins";
75
import{pageTitle}from"utils/page";
8-
import{useMutation,useQuery,useQueryClient}from"react-query";
96
import{authMethods,createUser}from"api/queries/users";
7+
import{useOrganizationId}from"contexts/auth/useOrganizationId";
8+
import{Margins}from"components/Margins/Margins";
109
import{displaySuccess}from"components/GlobalSnackbar/utils";
10+
import{CreateUserForm}from"./CreateUserForm";
1111

1212
exportconstLanguage={
1313
unknownError:"Oops, an unknown error occurred.",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp