Skip to content

Commit d3316f6

Browse files
Titles on index / account pages
Also changed to use `const { ..., name: serverName } = useServer();` where feasible
1 parent 27f201f commit d3316f6

File tree

9 files changed

+30
-19
lines changed

9 files changed

+30
-19
lines changed

resources/scripts/components/dashboard/AccountApiContainer.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import React, { useEffect, useState } from 'react';
2+
import { Helmet } from 'react-helmet';
23
import ContentBox from '@/components/elements/ContentBox';
34
import CreateApiKeyForm from '@/components/dashboard/forms/CreateApiKeyForm';
45
import getApiKeys, { ApiKey } from '@/api/account/getApiKeys';
@@ -7,7 +8,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
78
import { faKey, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
89
import ConfirmationModal from '@/components/elements/ConfirmationModal';
910
import deleteApiKey from '@/api/account/deleteApiKey';
10-
import { Actions, useStoreActions } from 'easy-peasy';
11+
import { Actions, useStoreActions, useStoreState } from 'easy-peasy';
1112
import { ApplicationStore } from '@/state';
1213
import FlashMessageRender from '@/components/FlashMessageRender';
1314
import { httpErrorToHuman } from '@/api/http';
@@ -21,6 +22,7 @@ export default () => {
2122
const [ keys, setKeys ] = useState<ApiKey[]>([]);
2223
const [ loading, setLoading ] = useState(true);
2324
const { addError, clearFlashes } = useStoreActions((actions: Actions<ApplicationStore>) => actions.flashes);
25+
const name = useStoreState((state: ApplicationStore) => state.settings.data!.name);
2426

2527
useEffect(() => {
2628
clearFlashes('account');
@@ -49,6 +51,9 @@ export default () => {
4951

5052
return (
5153
<PageContentBlock>
54+
<Helmet>
55+
<title> {name} | API</title>
56+
</Helmet>
5257
<FlashMessageRender byKey={'account'} css={tw`mb-4`}/>
5358
<div css={tw`flex`}>
5459
<ContentBox title={'Create API Key'} css={tw`flex-1`}>

resources/scripts/components/dashboard/AccountOverviewContainer.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import * as React from 'react';
2+
import { Helmet } from 'react-helmet';
3+
import { ApplicationStore } from '@/state';
24
import ContentBox from '@/components/elements/ContentBox';
35
import UpdatePasswordForm from '@/components/dashboard/forms/UpdatePasswordForm';
46
import UpdateEmailAddressForm from '@/components/dashboard/forms/UpdateEmailAddressForm';
@@ -7,6 +9,7 @@ import PageContentBlock from '@/components/elements/PageContentBlock';
79
import tw from 'twin.macro';
810
import { breakpoint } from '@/theme';
911
import styled from 'styled-components/macro';
12+
import { useStoreState } from 'easy-peasy';
1013

1114
const Container = styled.div`
1215
${tw`flex flex-wrap my-10`};
@@ -25,8 +28,12 @@ const Container = styled.div`
2528
`;
2629

2730
export default () => {
31+
const name = useStoreState((state: ApplicationStore) => state.settings.data!.name);
2832
return (
2933
<PageContentBlock>
34+
<Helmet>
35+
<title> {name} | Account Overview</title>
36+
</Helmet>
3037
<Container>
3138
<ContentBox title={'Update Password'} showFlashes={'account:password'}>
3239
<UpdatePasswordForm/>

resources/scripts/components/dashboard/DashboardContainer.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import React, { useEffect, useState } from 'react';
2+
import { Helmet } from 'react-helmet';
23
import { Server } from '@/api/server/getServer';
4+
import { ApplicationStore } from '@/state';
35
import getServers from '@/api/getServers';
46
import ServerRow from '@/components/dashboard/ServerRow';
57
import Spinner from '@/components/elements/Spinner';
@@ -18,6 +20,7 @@ export default () => {
1820
const [ page, setPage ] = useState(1);
1921
const { rootAdmin } = useStoreState(state => state.user.data!);
2022
const [ showOnlyAdmin, setShowOnlyAdmin ] = usePersistedState('show_all_servers', false);
23+
const name = useStoreState((state: ApplicationStore) => state.settings.data!.name);
2124

2225
const { data: servers, error } = useSWR<PaginatedResult<Server>>(
2326
[ '/api/client/servers', showOnlyAdmin, page ],
@@ -31,6 +34,9 @@ export default () => {
3134

3235
return (
3336
<PageContentBlock showFlashKey={'dashboard'}>
37+
<Helmet>
38+
<title> {name} | Dashboard</title>
39+
</Helmet>
3440
{rootAdmin &&
3541
<div css={tw`mb-2 flex justify-end items-center`}>
3642
<p css={tw`uppercase text-xs text-neutral-400 mr-2`}>

resources/scripts/components/server/backups/BackupContainer.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ import PageContentBlock from '@/components/elements/PageContentBlock';
1414
import tw from 'twin.macro';
1515

1616
export default () => {
17-
const { uuid, featureLimits } = useServer();
17+
const { uuid, featureLimits, name: serverName } = useServer();
1818
const { addError, clearFlashes } = useFlash();
1919
const [ loading, setLoading ] = useState(true);
2020

2121
const backups = ServerContext.useStoreState(state => state.backups.data);
22-
const server = ServerContext.useStoreState(state => state.server.data!);
2322
const setBackups = ServerContext.useStoreActions(actions => actions.backups.setBackups);
2423

2524
useEffect(() => {
@@ -40,7 +39,7 @@ export default () => {
4039
return (
4140
<PageContentBlock>
4241
<Helmet>
43-
<title> {server.name} | Backups</title>
42+
<title> {serverName} | Backups</title>
4443
</Helmet>
4544
<FlashMessageRender byKey={'backups'} css={tw`mb-4`}/>
4645
{!backups.length ?

resources/scripts/components/server/databases/DatabasesContainer.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@ import tw from 'twin.macro';
1515
import Fade from '@/components/elements/Fade';
1616

1717
export default () => {
18-
const { uuid, featureLimits } = useServer();
18+
const { uuid, featureLimits, name: serverName } = useServer();
1919
const { addError, clearFlashes } = useFlash();
2020
const [ loading, setLoading ] = useState(true);
2121

2222
const databases = ServerContext.useStoreState(state => state.databases.data);
23-
const servername = ServerContext.useStoreState(state => state.server.data.name);
2423
const setDatabases = ServerContext.useStoreActions(state => state.databases.setDatabases);
2524

2625
useEffect(() => {
@@ -39,7 +38,7 @@ export default () => {
3938
return (
4039
<PageContentBlock>
4140
<Helmet>
42-
<title> {servername} | Databases </title>
41+
<title> {serverName} | Databases </title>
4342
</Helmet>
4443
<FlashMessageRender byKey={'databases'} css={tw`mb-4`}/>
4544
{(!databases.length && loading) ?

resources/scripts/components/server/files/FileManagerContainer.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@ const sortFiles = (files: FileObject[]): FileObject[] => {
2424
};
2525

2626
export default () => {
27-
const { id } = useServer();
27+
const { id, name: serverName } = useServer();
2828
const { hash } = useLocation();
2929
const { data: files, error, mutate } = useFileManagerSwr();
3030

31-
const servername = ServerContext.useStoreState(state => state.server.data.name);
3231
const setDirectory = ServerContext.useStoreActions(actions => actions.files.setDirectory);
3332
const setSelectedFiles = ServerContext.useStoreActions(actions => actions.files.setSelectedFiles);
3433

@@ -46,7 +45,7 @@ export default () => {
4645
return (
4746
<PageContentBlock showFlashKey={'files'}>
4847
<Helmet>
49-
<title> {servername} | File Manager </title>
48+
<title> {serverName} | File Manager </title>
5049
</Helmet>
5150
<FileManagerBreadcrumbs/>
5251
{

resources/scripts/components/server/network/NetworkContainer.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, { useEffect, useState } from 'react';
22
import { Helmet } from 'react-helmet';
3-
import { ServerContext } from '@/state/server';
43
import tw from 'twin.macro';
54
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
65
import { faNetworkWired } from '@fortawesome/free-solid-svg-icons';
@@ -25,13 +24,11 @@ const Code = styled.code`${tw`font-mono py-1 px-2 bg-neutral-900 rounded text-sm
2524
const Label = styled.label`${tw`uppercase text-xs mt-1 text-neutral-400 block px-1 select-none transition-colors duration-150`}`;
2625

2726
const NetworkContainer = () => {
28-
const { uuid, allocations } = useServer();
27+
const { uuid, allocations, name: serverName } = useServer();
2928
const { clearFlashes, clearAndAddHttpError } = useFlash();
3029
const [ loading, setLoading ] = useState<false | number>(false);
3130
const { data, error, mutate } = useSWR<Allocation[]>(uuid, key => getServerAllocations(key), { initialData: allocations });
3231

33-
const servername = ServerContext.useStoreState(state => state.server.data.name);
34-
3532
const setPrimaryAllocation = (id: number) => {
3633
clearFlashes('server:network');
3734

@@ -66,7 +63,7 @@ const NetworkContainer = () => {
6663
return (
6764
<PageContentBlock showFlashKey={'server:network'}>
6865
<Helmet>
69-
<title> {servername} | Network </title>
66+
<title> {serverName} | Network </title>
7067
</Helmet>
7168
{!data ?
7269
<Spinner size={'large'} centered/>

resources/scripts/components/server/schedules/ScheduleContainer.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@ import GreyRowBox from '@/components/elements/GreyRowBox';
1717
import Button from '@/components/elements/Button';
1818

1919
export default ({ match, history }: RouteComponentProps) => {
20-
const { uuid } = useServer();
20+
const { uuid, name: serverName } = useServer();
2121
const { clearFlashes, addError } = useFlash();
2222
const [ loading, setLoading ] = useState(true);
2323
const [ visible, setVisible ] = useState(false);
2424

2525
const schedules = ServerContext.useStoreState(state => state.schedules.data);
26-
const servername = ServerContext.useStoreState(state => state.server.data.name);
2726
const setSchedules = ServerContext.useStoreActions(actions => actions.schedules.setSchedules);
2827

2928
useEffect(() => {
@@ -40,7 +39,7 @@ export default ({ match, history }: RouteComponentProps) => {
4039
return (
4140
<PageContentBlock>
4241
<Helmet>
43-
<title> {servername} | Schedules </title>
42+
<title> {serverName} | Schedules </title>
4443
</Helmet>
4544
<FlashMessageRender byKey={'schedules'} css={tw`mb-4`}/>
4645
{(!schedules.length && loading) ?

resources/scripts/components/server/users/UsersContainer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default () => {
1818

1919
const uuid = ServerContext.useStoreState(state => state.server.data!.uuid);
2020
const subusers = ServerContext.useStoreState(state => state.subusers.data);
21-
const servername = ServerContext.useStoreState(state => state.server.data.name);
21+
const servername = ServerContext.useStoreState(state => state.server.data!.name);
2222
const setSubusers = ServerContext.useStoreActions(actions => actions.subusers.setSubusers);
2323

2424
const permissions = useStoreState((state: ApplicationStore) => state.permissions.data);

0 commit comments

Comments
 (0)