React 18 and Vite (#4510)

This commit is contained in:
Matthew Penner 2022-11-25 13:25:03 -07:00 committed by GitHub
parent 1bb1b13f6d
commit 21613fa602
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
244 changed files with 4547 additions and 8933 deletions

View file

@ -1,4 +1,4 @@
import React, { useContext, useEffect, useState } from 'react';
import { useContext, useEffect, useState } from 'react';
import Spinner from '@/components/elements/Spinner';
import useFlash from '@/plugins/useFlash';
import Can from '@/components/elements/Can';
@ -16,7 +16,7 @@ const BackupContainer = () => {
const { clearFlashes, clearAndAddHttpError } = useFlash();
const { data: backups, error, isValidating } = getServerBackups();
const backupLimit = ServerContext.useStoreState((state) => state.server.data!.featureLimits.backups);
const backupLimit = ServerContext.useStoreState(state => state.server.data!.featureLimits.backups);
useEffect(() => {
if (!error) {

View file

@ -1,4 +1,4 @@
import React, { useState } from 'react';
import { useState } from 'react';
import {
faBoxOpen,
faCloudDownloadAlt,
@ -28,8 +28,8 @@ interface Props {
}
export default ({ backup }: Props) => {
const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid);
const setServerFromState = ServerContext.useStoreActions((actions) => actions.server.setServerFromState);
const uuid = ServerContext.useStoreState(state => state.server.data!.uuid);
const setServerFromState = ServerContext.useStoreActions(actions => actions.server.setServerFromState);
const [modal, setModal] = useState('');
const [loading, setLoading] = useState(false);
const [truncate, setTruncate] = useState(false);
@ -40,11 +40,11 @@ export default ({ backup }: Props) => {
setLoading(true);
clearFlashes('backups');
getBackupDownloadUrl(uuid, backup.uuid)
.then((url) => {
.then(url => {
// @ts-expect-error this is valid
window.location = url;
})
.catch((error) => {
.catch(error => {
console.error(error);
clearAndAddHttpError({ key: 'backups', error });
})
@ -55,17 +55,18 @@ export default ({ backup }: Props) => {
setLoading(true);
clearFlashes('backups');
deleteBackup(uuid, backup.uuid)
.then(() =>
mutate(
(data) => ({
...data,
items: data.items.filter((b) => b.uuid !== backup.uuid),
backupCount: data.backupCount - 1,
}),
false
)
.then(
async () =>
await mutate(
data => ({
...data!,
items: data!.items.filter(b => b.uuid !== backup.uuid),
backupCount: data!.backupCount - 1,
}),
false,
),
)
.catch((error) => {
.catch(error => {
console.error(error);
clearAndAddHttpError({ key: 'backups', error });
setLoading(false);
@ -78,12 +79,12 @@ export default ({ backup }: Props) => {
clearFlashes('backups');
restoreServerBackup(uuid, backup.uuid, truncate)
.then(() =>
setServerFromState((s) => ({
setServerFromState(s => ({
...s,
status: 'restoring_backup',
}))
})),
)
.catch((error) => {
.catch(error => {
console.error(error);
clearAndAddHttpError({ key: 'backups', error });
})
@ -97,23 +98,24 @@ export default ({ backup }: Props) => {
}
http.post(`/api/client/servers/${uuid}/backups/${backup.uuid}/lock`)
.then(() =>
mutate(
(data) => ({
...data,
items: data.items.map((b) =>
b.uuid !== backup.uuid
? b
: {
...b,
isLocked: !b.isLocked,
}
),
}),
false
)
.then(
async () =>
await mutate(
data => ({
...data!,
items: data!.items.map(b =>
b.uuid !== backup.uuid
? b
: {
...b,
isLocked: !b.isLocked,
},
),
}),
false,
),
)
.catch((error) => alert(httpErrorToHuman(error)))
.catch(error => alert(httpErrorToHuman(error)))
.then(() => setModal(''));
};
@ -146,7 +148,7 @@ export default ({ backup }: Props) => {
id={'restore_truncate'}
value={'true'}
checked={truncate}
onChange={() => setTruncate((s) => !s)}
onChange={() => setTruncate(s => !s)}
/>
Delete all files before restoring backup.
</label>
@ -164,7 +166,7 @@ export default ({ backup }: Props) => {
<SpinnerOverlay visible={loading} fixed />
{backup.isSuccessful ? (
<DropdownMenu
renderToggle={(onClick) => (
renderToggle={onClick => (
<button
onClick={onClick}
css={tw`text-gray-200 transition-colors duration-150 hover:text-gray-100 p-2`}

View file

@ -1,4 +1,3 @@
import React from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faArchive, faEllipsisH, faLock } from '@fortawesome/free-solid-svg-icons';
import { format, formatDistanceToNow } from 'date-fns';
@ -21,14 +20,14 @@ interface Props {
export default ({ backup, className }: Props) => {
const { mutate } = getServerBackups();
useWebsocketEvent(`${SocketEvent.BACKUP_COMPLETED}:${backup.uuid}` as SocketEvent, (data) => {
useWebsocketEvent(`${SocketEvent.BACKUP_COMPLETED}:${backup.uuid}` as SocketEvent, async data => {
try {
const parsed = JSON.parse(data);
mutate(
(data) => ({
...data,
items: data.items.map((b) =>
await mutate(
data => ({
...data!,
items: data!.items.map(b =>
b.uuid !== backup.uuid
? b
: {
@ -37,10 +36,10 @@ export default ({ backup, className }: Props) => {
checksum: (parsed.checksum_type || '') + ':' + (parsed.checksum || ''),
bytes: parsed.file_size || 0,
completedAt: new Date(),
}
},
),
}),
false
false,
);
} catch (e) {
console.warn(e);

View file

@ -1,4 +1,4 @@
import React, { useEffect, useState } from 'react';
import { useEffect, useState } from 'react';
import Modal, { RequiredModalProps } from '@/components/elements/Modal';
import { Field as FormikField, Form, Formik, FormikHelpers, useFormikContext } from 'formik';
import { boolean, object, string } from 'yup';
@ -68,7 +68,7 @@ const ModalContent = ({ ...props }: RequiredModalProps) => {
};
export default () => {
const uuid = ServerContext.useStoreState((state) => state.server.data!.uuid);
const uuid = ServerContext.useStoreState(state => state.server.data!.uuid);
const { clearFlashes, clearAndAddHttpError } = useFlash();
const [visible, setVisible] = useState(false);
const { mutate } = getServerBackups();
@ -80,14 +80,14 @@ export default () => {
const submit = (values: Values, { setSubmitting }: FormikHelpers<Values>) => {
clearFlashes('backups:create');
createServerBackup(uuid, values)
.then((backup) => {
mutate(
(data) => ({ ...data, items: data.items.concat(backup), backupCount: data.backupCount + 1 }),
false
.then(async backup => {
await mutate(
data => ({ ...data!, items: data!.items.concat(backup), backupCount: data!.backupCount + 1 }),
false,
);
setVisible(false);
})
.catch((error) => {
.catch(error => {
clearAndAddHttpError({ key: 'backups:create', error });
setSubmitting(false);
});