mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-10 04:30:25 +02:00
Move add server form inside of server list
This commit is contained in:
@@ -1,13 +1,17 @@
|
|||||||
import { Accordion, Group } from '@mantine/core';
|
import { Accordion, Group } from '@mantine/core';
|
||||||
|
import { openContextModal } from '@mantine/modals';
|
||||||
import { RiServerFill } from 'react-icons/ri';
|
import { RiServerFill } from 'react-icons/ri';
|
||||||
import { Text } from '@/renderer/components';
|
import { Text, Button, ContextModalVars } from '@/renderer/components';
|
||||||
import { ServerListItem } from '@/renderer/features/servers/components/server-list-item';
|
import { ServerListItem } from '@/renderer/features/servers/components/server-list-item';
|
||||||
import { useServerList } from '@/renderer/features/servers/queries/use-server-list';
|
import { useServerList } from '@/renderer/features/servers/queries/use-server-list';
|
||||||
|
import { usePermissions } from '@/renderer/features/shared';
|
||||||
import { Font } from '@/renderer/styles';
|
import { Font } from '@/renderer/styles';
|
||||||
import { titleCase } from '@/renderer/utils';
|
import { titleCase } from '@/renderer/utils';
|
||||||
|
import { AddServerForm } from './add-server-form';
|
||||||
|
|
||||||
export const ServerList = () => {
|
export const ServerList = () => {
|
||||||
const { data: servers } = useServerList();
|
const { data: servers } = useServerList();
|
||||||
|
const permissions = usePermissions();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -27,6 +31,31 @@ export const ServerList = () => {
|
|||||||
</Accordion.Item>
|
</Accordion.Item>
|
||||||
))}
|
))}
|
||||||
</Accordion>
|
</Accordion>
|
||||||
|
<Group mt={10} position="right">
|
||||||
|
<Button
|
||||||
|
compact
|
||||||
|
disabled={!permissions.createServer}
|
||||||
|
onClick={() =>
|
||||||
|
openContextModal({
|
||||||
|
centered: true,
|
||||||
|
exitTransitionDuration: 300,
|
||||||
|
innerProps: {
|
||||||
|
modalBody: (vars: ContextModalVars) => (
|
||||||
|
<AddServerForm
|
||||||
|
onCancel={() => vars.context.closeModal(vars.id)}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
modal: 'base',
|
||||||
|
overflow: 'inside',
|
||||||
|
title: 'Add server',
|
||||||
|
transition: 'slide-down',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Add server
|
||||||
|
</Button>
|
||||||
|
</Group>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Group } from '@mantine/core';
|
import { Group } from '@mantine/core';
|
||||||
import { openModal, closeAllModals } from '@mantine/modals';
|
import { openModal } from '@mantine/modals';
|
||||||
import { useQueryClient } from '@tanstack/react-query';
|
import { useQueryClient } from '@tanstack/react-query';
|
||||||
import {
|
import {
|
||||||
RiLock2Line,
|
RiLock2Line,
|
||||||
@@ -10,18 +10,12 @@ import {
|
|||||||
RiSettings2Line,
|
RiSettings2Line,
|
||||||
RiEdit2Line,
|
RiEdit2Line,
|
||||||
RiUserAddLine,
|
RiUserAddLine,
|
||||||
RiAddLine,
|
|
||||||
} from 'react-icons/ri';
|
} from 'react-icons/ri';
|
||||||
import { useNavigate } from 'react-router';
|
import { useNavigate } from 'react-router';
|
||||||
import { queryKeys } from '@/renderer/api/query-keys';
|
import { queryKeys } from '@/renderer/api/query-keys';
|
||||||
import { Button, DropdownMenu, Text } from '@/renderer/components';
|
import { Button, DropdownMenu, Text } from '@/renderer/components';
|
||||||
import {
|
import { ServerList, useServerList } from '@/renderer/features/servers';
|
||||||
AddServerForm,
|
|
||||||
ServerList,
|
|
||||||
useServerList,
|
|
||||||
} from '@/renderer/features/servers';
|
|
||||||
import { Settings } from '@/renderer/features/settings';
|
import { Settings } from '@/renderer/features/settings';
|
||||||
import { usePermissions } from '@/renderer/features/shared';
|
|
||||||
import { useAuthStore } from '@/renderer/store';
|
import { useAuthStore } from '@/renderer/store';
|
||||||
|
|
||||||
export const AppMenu = () => {
|
export const AppMenu = () => {
|
||||||
@@ -31,7 +25,6 @@ export const AppMenu = () => {
|
|||||||
const currentServer = useAuthStore((state) => state.currentServer);
|
const currentServer = useAuthStore((state) => state.currentServer);
|
||||||
const setCurrentServer = useAuthStore((state) => state.setCurrentServer);
|
const setCurrentServer = useAuthStore((state) => state.setCurrentServer);
|
||||||
const serverCredentials = useAuthStore((state) => state.serverCredentials);
|
const serverCredentials = useAuthStore((state) => state.serverCredentials);
|
||||||
const permissions = usePermissions();
|
|
||||||
const { data: servers } = useServerList();
|
const { data: servers } = useServerList();
|
||||||
|
|
||||||
const serverList =
|
const serverList =
|
||||||
@@ -46,17 +39,6 @@ export const AppMenu = () => {
|
|||||||
navigate('/login');
|
navigate('/login');
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleAddServerModal = () => {
|
|
||||||
openModal({
|
|
||||||
centered: true,
|
|
||||||
children: <AddServerForm onCancel={closeAllModals} />,
|
|
||||||
exitTransitionDuration: 300,
|
|
||||||
overflow: 'inside',
|
|
||||||
title: 'Add server',
|
|
||||||
transition: 'slide-down',
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleManageServersModal = () => {
|
const handleManageServersModal = () => {
|
||||||
openModal({
|
openModal({
|
||||||
centered: true,
|
centered: true,
|
||||||
@@ -138,23 +120,15 @@ export const AppMenu = () => {
|
|||||||
Settings
|
Settings
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
<DropdownMenu.Divider />
|
<DropdownMenu.Divider />
|
||||||
{permissions.createServer && (
|
<DropdownMenu.Item disabled rightSection={<RiUserAddLine />}>
|
||||||
<DropdownMenu.Item
|
Manage users
|
||||||
rightSection={<RiAddLine />}
|
</DropdownMenu.Item>
|
||||||
onClick={handleAddServerModal}
|
|
||||||
>
|
|
||||||
Add server
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
)}
|
|
||||||
<DropdownMenu.Item
|
<DropdownMenu.Item
|
||||||
rightSection={<RiEdit2Line />}
|
rightSection={<RiEdit2Line />}
|
||||||
onClick={handleManageServersModal}
|
onClick={handleManageServersModal}
|
||||||
>
|
>
|
||||||
Manage servers
|
Manage servers
|
||||||
</DropdownMenu.Item>
|
</DropdownMenu.Item>
|
||||||
<DropdownMenu.Item disabled rightSection={<RiUserAddLine />}>
|
|
||||||
Manage users
|
|
||||||
</DropdownMenu.Item>
|
|
||||||
<DropdownMenu.Divider />
|
<DropdownMenu.Divider />
|
||||||
<DropdownMenu.Item
|
<DropdownMenu.Item
|
||||||
rightSection={<RiLogoutBoxLine />}
|
rightSection={<RiLogoutBoxLine />}
|
||||||
|
|||||||
Reference in New Issue
Block a user