mirror of
https://github.com/colanode/colanode.git
synced 2025-12-29 00:25:03 +01:00
User userId instead of workspaceId in routing
This commit is contained in:
@@ -62,6 +62,7 @@ export class WorkspaceCreateMutationHandler
|
||||
return {
|
||||
output: {
|
||||
id: data.id,
|
||||
userId: data.user.id,
|
||||
},
|
||||
changes: [
|
||||
{
|
||||
|
||||
@@ -8,6 +8,7 @@ export type WorkspaceCreateMutationInput = {
|
||||
|
||||
export type WorkspaceCreateMutationOutput = {
|
||||
id: string;
|
||||
userId: string;
|
||||
};
|
||||
|
||||
declare module '@/operations/mutations' {
|
||||
|
||||
@@ -2,7 +2,7 @@ import React from 'react';
|
||||
import { Login } from '@/renderer/components/accounts/login';
|
||||
import { AppLoading } from '@/renderer/app-loading';
|
||||
import { AccountContext } from '@/renderer/contexts/account';
|
||||
import { Outlet } from 'react-router-dom';
|
||||
import { Outlet, useParams } from 'react-router-dom';
|
||||
import { AccountLogout } from '@/renderer/components/accounts/account-logout';
|
||||
import { DelayedComponent } from '@/renderer/components/ui/delayed-component';
|
||||
import { useQuery } from '@/renderer/hooks/use-query';
|
||||
@@ -11,6 +11,7 @@ import { AccountSettingsDialog } from '@/renderer/components/accounts/account-se
|
||||
export const App = () => {
|
||||
const [showLogout, setShowLogout] = React.useState(false);
|
||||
const [showAccountSettings, setShowAccountSettings] = React.useState(false);
|
||||
const { userId } = useParams<{ userId: string }>();
|
||||
|
||||
const { data: servers, isPending: isPendingServers } = useQuery({
|
||||
type: 'server_list',
|
||||
@@ -37,7 +38,21 @@ export const App = () => {
|
||||
return <Login />;
|
||||
}
|
||||
|
||||
const account = accounts[0];
|
||||
const workspace = workspaces?.find(
|
||||
(workspace) => workspace.userId === userId
|
||||
);
|
||||
|
||||
let account = accounts[0];
|
||||
if (workspace) {
|
||||
const workspaceAccount = accounts.find(
|
||||
(account) => account.id === workspace.accountId
|
||||
);
|
||||
|
||||
if (workspaceAccount) {
|
||||
account = workspaceAccount;
|
||||
}
|
||||
}
|
||||
|
||||
const server = servers?.find((server) => server.domain === account?.server);
|
||||
|
||||
if (!server) {
|
||||
|
||||
@@ -48,7 +48,7 @@ export const EmailLogin = ({ server }: EmailLoginProps) => {
|
||||
onSuccess(output) {
|
||||
if (output.success) {
|
||||
if (output.workspaces.length > 0) {
|
||||
navigate(`/${output.workspaces[0].id}`);
|
||||
navigate(`/${output.workspaces[0].user.id}`);
|
||||
} else {
|
||||
navigate('/create');
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ export const EmailRegister = ({ server }: EmailRegisterProps) => {
|
||||
onSuccess(output) {
|
||||
if (output.success) {
|
||||
if (output.workspaces.length > 0) {
|
||||
navigate(`/${output.workspaces[0].id}`);
|
||||
navigate(`/${output.workspaces[0].user.id}`);
|
||||
} else {
|
||||
navigate('/create');
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ export const SidebarHeader = () => {
|
||||
<DropdownMenuItem
|
||||
key={workspace.id}
|
||||
onClick={() => {
|
||||
navigate(`/${workspace.id}`);
|
||||
navigate(`/${workspace.userId}`);
|
||||
}}
|
||||
className="gap-2 p-2"
|
||||
>
|
||||
|
||||
@@ -32,7 +32,7 @@ export const WorkspaceCreate = () => {
|
||||
avatar: values.avatar ?? null,
|
||||
},
|
||||
onSuccess(output) {
|
||||
navigate(`/${output.id}`);
|
||||
navigate(`/${output.userId}`);
|
||||
},
|
||||
onError() {
|
||||
toast({
|
||||
|
||||
@@ -12,7 +12,7 @@ export const WorkspaceRedirect = (): React.ReactNode => {
|
||||
return;
|
||||
}
|
||||
|
||||
navigate(`/${account.workspaces[0].id}`);
|
||||
navigate(`/${account.workspaces[0].userId}`);
|
||||
}, [account.workspaces, navigate]);
|
||||
|
||||
return null;
|
||||
|
||||
@@ -16,13 +16,13 @@ import {
|
||||
} from '@/renderer/components/ui/sidebar';
|
||||
|
||||
export const Workspace = () => {
|
||||
const { workspaceId } = useParams<{ workspaceId: string }>();
|
||||
const { userId } = useParams<{ userId: string }>();
|
||||
|
||||
const account = useAccount();
|
||||
const navigate = useNavigate();
|
||||
const [searchParams, setSearchParams] = useSearchParams();
|
||||
const [openSettings, setOpenSettings] = React.useState(false);
|
||||
const workspace = account.workspaces.find((w) => w.id === workspaceId);
|
||||
const workspace = account.workspaces.find((w) => w.userId === userId);
|
||||
|
||||
if (!workspace) {
|
||||
return <p>Workspace not found</p>;
|
||||
@@ -34,7 +34,7 @@ export const Workspace = () => {
|
||||
value={{
|
||||
...workspace,
|
||||
navigateToNode(nodeId) {
|
||||
navigate(`/${workspaceId}/${nodeId}`);
|
||||
navigate(`/${userId}/${nodeId}`);
|
||||
},
|
||||
openModal(modal) {
|
||||
setSearchParams((prev) => {
|
||||
|
||||
@@ -25,7 +25,7 @@ const router = createHashRouter([
|
||||
element: <WorkspaceCreate />,
|
||||
},
|
||||
{
|
||||
path: ':workspaceId',
|
||||
path: ':userId',
|
||||
element: <Workspace />,
|
||||
children: [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user