refactor layout

* ui polishing
* frontend and backend fixes
This commit is contained in:
Philipinho
2024-05-31 21:51:44 +01:00
parent 046dd6d150
commit 06d854a7d2
95 changed files with 1548 additions and 821 deletions

View File

@ -1,13 +1,15 @@
import { Container } from '@mantine/core';
import HomeTabs from '@/features/home/components/home-tabs';
import { Container, Space } from "@mantine/core";
import HomeTabs from "@/features/home/components/home-tabs";
import SpaceGrid from "@/features/space/components/space-grid.tsx";
export default function Home() {
return (
<Container size={'800'} pt="xl">
<Container size={"800"} pt="xl">
<SpaceGrid />
<HomeTabs/>
<Space h="xl" />
<HomeTabs />
</Container>
);
}

View File

@ -0,0 +1,28 @@
import { useNavigate, useParams } from "react-router-dom";
import { useEffect } from "react";
import { usePageQuery } from "@/features/page/queries/page-query";
import { buildPageUrl } from "@/features/page/page.utils.ts";
import { extractPageSlugId } from "@/lib";
export default function PageRedirect() {
const { pageSlug } = useParams();
const {
data: page,
isLoading: pageIsLoading,
isError,
} = usePageQuery({ pageId: extractPageSlugId(pageSlug) });
const navigate = useNavigate();
useEffect(() => {
if (page) {
const pageUrl = buildPageUrl(page.space.slug, page.slugId, page.title);
navigate(pageUrl);
}
}, [page]);
if (pageIsLoading) {
return <></>;
}
return null;
}

View File

@ -3,10 +3,16 @@ import { usePageQuery } from "@/features/page/queries/page-query";
import { FullEditor } from "@/features/editor/full-editor";
import HistoryModal from "@/features/page-history/components/history-modal";
import { Helmet } from "react-helmet-async";
import PageHeader from "@/features/page/components/header/page-header.tsx";
import { extractPageSlugId } from "@/lib";
export default function Page() {
const { slugId } = useParams();
const { data: page, isLoading, isError } = usePageQuery(slugId);
const { pageSlug, spaceSlug } = useParams();
const {
data: page,
isLoading,
isError,
} = usePageQuery({ pageId: extractPageSlugId(pageSlug) });
if (isLoading) {
return <></>;
@ -23,7 +29,15 @@ export default function Page() {
<Helmet>
<title>{page.title}</title>
</Helmet>
<FullEditor pageId={page.id} title={page.title} slugId={page.slugId} />
<PageHeader />
<FullEditor
pageId={page.id}
title={page.title}
slugId={page.slugId}
spaceSlug={page?.space?.slug || spaceSlug}
/>
<HistoryModal pageId={page.id} />
</div>
)

View File

@ -1,4 +1,4 @@
import SettingsTitle from "@/components/layouts/settings/settings-title.tsx";
import SettingsTitle from "@/components/settings/settings-title.tsx";
import AccountTheme from "@/features/user/components/account-theme.tsx";
export default function AccountPreferences() {

View File

@ -3,7 +3,7 @@ import ChangeEmail from "@/features/user/components/change-email";
import ChangePassword from "@/features/user/components/change-password";
import { Divider } from "@mantine/core";
import AccountAvatar from "@/features/user/components/account-avatar";
import SettingsTitle from "@/components/layouts/settings/settings-title.tsx";
import SettingsTitle from "@/components/settings/settings-title.tsx";
export default function AccountSettings() {
return (

View File

@ -1,4 +1,4 @@
import SettingsTitle from "@/components/layouts/settings/settings-title.tsx";
import SettingsTitle from "@/components/settings/settings-title.tsx";
import GroupMembersList from "@/features/group/components/group-members";
import GroupDetails from "@/features/group/components/group-details";

View File

@ -1,5 +1,5 @@
import GroupList from "@/features/group/components/group-list";
import SettingsTitle from "@/components/layouts/settings/settings-title.tsx";
import SettingsTitle from "@/components/settings/settings-title.tsx";
import { Group, Text } from "@mantine/core";
import CreateGroupModal from "@/features/group/components/create-group-modal";

View File

@ -1,4 +1,4 @@
import SettingsTitle from "@/components/layouts/settings/settings-title.tsx";
import SettingsTitle from "@/components/settings/settings-title.tsx";
import SpaceList from "@/features/space/components/space-list.tsx";
export default function Spaces() {

View File

@ -2,7 +2,7 @@ import WorkspaceInviteSection from "@/features/workspace/components/members/comp
import WorkspaceInviteModal from "@/features/workspace/components/members/components/workspace-invite-modal";
import { Divider, Group, SegmentedControl, Space, Text } from "@mantine/core";
import WorkspaceMembersTable from "@/features/workspace/components/members/components/workspace-members-table";
import SettingsTitle from "@/components/layouts/settings/settings-title.tsx";
import SettingsTitle from "@/components/settings/settings-title.tsx";
import { useEffect, useState } from "react";
import { useNavigate, useSearchParams } from "react-router-dom";
import WorkspaceInvitesTable from "@/features/workspace/components/members/components/workspace-invites-table.tsx";

View File

@ -1,4 +1,4 @@
import SettingsTitle from "@/components/layouts/settings/settings-title.tsx";
import SettingsTitle from "@/components/settings/settings-title.tsx";
import WorkspaceNameForm from "@/features/workspace/components/settings/components/workspace-name-form";
export default function WorkspaceSettings() {

View File

@ -0,0 +1,15 @@
import { Container } from "@mantine/core";
import SpaceHomeTabs from "@/features/space/components/space-home-tabs.tsx";
import { useParams } from "react-router-dom";
import { useGetSpaceBySlugQuery } from "@/features/space/queries/space-query.ts";
export default function SpaceHome() {
const { spaceSlug } = useParams();
const { data: space } = useGetSpaceBySlugQuery(spaceSlug);
return (
<Container size={"800"} pt="xl">
{space && <SpaceHomeTabs />}
</Container>
);
}