Skip to content

Commit e602620

Browse files
committed
auto open create extension dialog
1 parent 1ae8c7c commit e602620

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

frontend/src/pages/admin/extensions/ExtensionsPage.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { IconPlus } from '@tabler/icons-react';
33
import { useMutation, useQuery } from '@tanstack/react-query';
44
import { useEffect, useState } from 'react';
55
import { FormProvider, useForm } from 'react-hook-form';
6-
import { useParams } from 'react-router-dom';
6+
import { useParams, useSearchParams } from 'react-router-dom';
77
import { toast } from 'react-toastify';
88
import { useApi } from 'src/api';
99
import { BucketDto, ExtensionDto } from 'src/api/generated';
@@ -23,7 +23,19 @@ export function ExtensionsPage() {
2323

2424
const configurationParam = useParams<'id'>();
2525
const configurationId = +configurationParam.id!;
26-
const [toCreate, setToCreate] = useState<boolean>();
26+
const [searchParams, setSearchParams] = useSearchParams();
27+
28+
const toCreate = searchParams.get('add-extension') === 'true';
29+
30+
const setToCreate = (value: boolean) => {
31+
const newParams = new URLSearchParams(searchParams);
32+
if (value) {
33+
newParams.set('add-extension', 'true');
34+
} else {
35+
newParams.delete('add-extension');
36+
}
37+
setSearchParams(newParams);
38+
};
2739
const [toUpdate, setToUpdate] = useState<ExtensionDto | null>();
2840
const { extensions, specs, removeExtension, setExtension, setExtensions } = useExtensionsStore();
2941

frontend/src/pages/admin/extensions/UpsertConfigurationDialog.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Button, Flex, Portal, Switch, Textarea, TextInput } from '@mantine/core';
22
import { useForm } from '@mantine/form';
33
import { useMutation } from '@tanstack/react-query';
4+
import { useNavigate } from 'react-router-dom';
45
import z from 'zod';
56
import { ConfigurationDto, UpsertConfigurationDto, useApi } from 'src/api';
67
import { FormAlert, MAX_SUGGESTIONS, Modal } from 'src/components';
@@ -35,14 +36,16 @@ interface UpsertConfigurationDialogProps {
3536

3637
export function UpsertConfigurationDialog(props: UpsertConfigurationDialogProps) {
3738
const { onCreate, onUpdate, onClose, target } = props;
39+
const navigate = useNavigate();
3840

3941
const api = useApi();
4042

4143
const creating = useMutation({
4244
mutationFn: (request: UpsertConfigurationDto) => api.extensions.postConfiguration(request),
43-
onSuccess: (response) => {
45+
onSuccess: async (response) => {
4446
onCreate(response);
4547
onClose();
48+
await navigate(`/admin/assistants/${response.id}?add-extension=true`);
4649
},
4750
});
4851

0 commit comments

Comments
 (0)