mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-24 16:39:13 +00:00
feat: some cleanup
This commit is contained in:
@@ -1,71 +1,16 @@
|
|||||||
import { useEffect } from 'react';
|
|
||||||
import { useFieldArray, useForm } from 'react-hook-form';
|
|
||||||
import { Alias } from 'ontime-types';
|
|
||||||
|
|
||||||
import useAliases from '../../../../common/hooks-query/useAliases';
|
import useAliases from '../../../../common/hooks-query/useAliases';
|
||||||
import ModalLoader from '../../../../features/modals/modal-loader/ModalLoader';
|
import ModalLoader from '../../../../features/modals/modal-loader/ModalLoader';
|
||||||
import * as Panel from '../PanelUtils';
|
import * as Panel from '../PanelUtils';
|
||||||
|
|
||||||
import UrlAliasListItem from './UrlAliasListItem';
|
import UrlAliasListItem from './UrlAliasListItem';
|
||||||
|
|
||||||
type Aliases = {
|
|
||||||
aliases: Alias[];
|
|
||||||
};
|
|
||||||
|
|
||||||
export default function UrlAliasList() {
|
export default function UrlAliasList() {
|
||||||
const { data, status, isFetching, refetch } = useAliases();
|
const { data, isFetching, refetch } = useAliases();
|
||||||
|
|
||||||
// const { emitError } = useEmitLog();
|
|
||||||
const {
|
|
||||||
control,
|
|
||||||
// handleSubmit,
|
|
||||||
register,
|
|
||||||
reset,
|
|
||||||
formState: { isSubmitting, isDirty, isValid },
|
|
||||||
} = useForm<Aliases>({
|
|
||||||
defaultValues: { aliases: data },
|
|
||||||
values: { aliases: data || [] },
|
|
||||||
resetOptions: {
|
|
||||||
keepDirtyValues: true,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log({ isSubmitting, isDirty, isValid, data });
|
|
||||||
|
|
||||||
const { fields, remove } = useFieldArray({
|
|
||||||
name: 'aliases',
|
|
||||||
control,
|
|
||||||
});
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (data) {
|
|
||||||
reset({ aliases: data });
|
|
||||||
}
|
|
||||||
}, [data, reset]);
|
|
||||||
|
|
||||||
const handleRefetch = async () => {
|
const handleRefetch = async () => {
|
||||||
await refetch();
|
await refetch();
|
||||||
};
|
};
|
||||||
|
|
||||||
// const onReset = () => {
|
|
||||||
// reset({ aliases: data });
|
|
||||||
// };
|
|
||||||
|
|
||||||
// const addNew = () => {
|
|
||||||
// if (fields.length > 20) {
|
|
||||||
// emitError('Maximum amount of aliases reached (20)');
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// append({
|
|
||||||
// enabled: false,
|
|
||||||
// alias: '',
|
|
||||||
// pathAndParams: '',
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
|
|
||||||
const disableInputs = status === 'pending';
|
|
||||||
// const hasTooManyOptions = fields.length >= 20;
|
|
||||||
|
|
||||||
if (isFetching) {
|
if (isFetching) {
|
||||||
return <ModalLoader />;
|
return <ModalLoader />;
|
||||||
}
|
}
|
||||||
@@ -81,14 +26,14 @@ export default function UrlAliasList() {
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{fields.map((alias) => {
|
{(data || []).map((alias) => {
|
||||||
return (
|
return (
|
||||||
<UrlAliasListItem
|
<UrlAliasListItem
|
||||||
alias={alias.alias}
|
alias={alias.alias}
|
||||||
enabled={alias.enabled}
|
enabled={alias.enabled}
|
||||||
pathAndParams={alias.pathAndParams}
|
pathAndParams={alias.pathAndParams}
|
||||||
onRefetch={handleRefetch}
|
onRefetch={handleRefetch}
|
||||||
key={alias.id}
|
key={alias.alias}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export default function UrlAliasPanel() {
|
|||||||
<Panel.Header>URL Aliases</Panel.Header>
|
<Panel.Header>URL Aliases</Panel.Header>
|
||||||
<Panel.Section>
|
<Panel.Section>
|
||||||
<Panel.Card>
|
<Panel.Card>
|
||||||
<div>
|
<main>
|
||||||
<Alert status='info' variant='ontime-on-light-info'>
|
<Alert status='info' variant='ontime-on-light-info'>
|
||||||
<AlertIcon />
|
<AlertIcon />
|
||||||
<div className={style.column}>
|
<div className={style.column}>
|
||||||
@@ -28,8 +28,14 @@ export default function UrlAliasPanel() {
|
|||||||
</AlertDescription>
|
</AlertDescription>
|
||||||
</div>
|
</div>
|
||||||
</Alert>
|
</Alert>
|
||||||
<UrlAliasList />
|
<div
|
||||||
</div>
|
style={{
|
||||||
|
marginTop: '1rem',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<UrlAliasList />
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
</Panel.Card>
|
</Panel.Card>
|
||||||
</Panel.Section>
|
</Panel.Section>
|
||||||
</>
|
</>
|
||||||
|
|||||||
Reference in New Issue
Block a user