This commit is contained in:
ditiqi 2025-02-27 10:36:06 +08:00
parent 5677d2eaa9
commit e9bc2bb4a2
10 changed files with 75 additions and 81 deletions

View File

@ -1,4 +1,4 @@
import FilterSection from "../components/FilterSection"; import FilterSection from "../../layout/BasePost/FilterSection";
import CoursesContainer from "../components/CoursesContainer"; import CoursesContainer from "../components/CoursesContainer";
export function AllCoursesLayout() { export function AllCoursesLayout() {
return ( return (

View File

@ -1,8 +1,11 @@
import AllCoursesLayout from "./layout/AllCoursesLayout"; import BasePostLayout from "../layout/BasePost/BasePostLayout";
import CoursesContainer from "./components/CoursesContainer";
export default function CoursesPage() { export default function CoursesPage() {
return ( return (
<> <>
<AllCoursesLayout></AllCoursesLayout> <BasePostLayout>
<CoursesContainer></CoursesContainer>
</BasePostLayout>
</> </>
); );
} }

View File

@ -0,0 +1,18 @@
import { ReactNode } from "react";
import FilterSection from "./FilterSection";
export function BasePostLayout({ children }: { children: ReactNode }) {
return (
<>
<div className="min-h-screen bg-gray-50">
<div className=" flex">
<div className="w-1/6">
<FilterSection></FilterSection>
</div>
<div className="w-5/6 p-4">{children}</div>
</div>
</div>
</>
);
}
export default BasePostLayout;

View File

@ -6,7 +6,7 @@ import { useEffect, useMemo, useState } from "react";
import { api } from "@nice/client"; import { api } from "@nice/client";
import { useSearchParams } from "react-router-dom"; import { useSearchParams } from "react-router-dom";
import TermSelect from "@web/src/components/models/term/term-select"; import TermSelect from "@web/src/components/models/term/term-select";
import { useMainContext } from "../../layout/MainProvider"; import { useMainContext } from "../MainProvider";
import TermParentSelector from "@web/src/components/models/term/term-parent-selector"; import TermParentSelector from "@web/src/components/models/term/term-parent-selector";
export default function FilterSection() { export default function FilterSection() {

View File

@ -5,7 +5,7 @@ import CourseCard from "../../courses/components/CourseCard";
import { PostType } from "@nice/common"; import { PostType } from "@nice/common";
import { useMainContext } from "../../layout/MainProvider"; import { useMainContext } from "../../layout/MainProvider";
export default function MyDutyPage() { export default function MyDutyListContainer() {
const { user } = useAuth(); const { user } = useAuth();
const { searchCondition, termsCondition } = useMainContext(); const { searchCondition, termsCondition } = useMainContext();
return ( return (

View File

@ -1,29 +1,10 @@
import PostList from "@web/src/components/models/course/list/PostList"; import BasePostLayout from "../layout/BasePost/BasePostLayout";
import { useAuth } from "@web/src/providers/auth-provider"; import MyDutyListContainer from "./components/MyDutyListContainer";
import { useMainContext } from "../layout/MainProvider";
import CourseCard from "../courses/components/CourseCard";
import { PostType } from "@nice/common";
export default function MyDutyPage() { export default function MyDutyPage() {
const { user } = useAuth();
const { searchCondition } = useMainContext();
return ( return (
<> <BasePostLayout>
<div className="p-4"> <MyDutyListContainer></MyDutyListContainer>
<PostList </BasePostLayout>
renderItem={(post) => (
<CourseCard edit course={post}></CourseCard>
)}
params={{
pageSize: 12,
where: {
type: PostType.COURSE,
authorId: user.id,
...searchCondition,
},
}}
cols={4}></PostList>
</div>
</>
); );
} }

View File

@ -0,0 +1,32 @@
import PostList from "@web/src/components/models/course/list/PostList";
import { useAuth } from "@web/src/providers/auth-provider";
import { useMainContext } from "../../layout/MainProvider";
import CourseCard from "../../courses/components/CourseCard";
import { PostType } from "@nice/common";
export default function MyLearningListContainer() {
const { user } = useAuth();
const { searchCondition, termsCondition } = useMainContext();
return (
<>
<PostList
renderItem={(post) => (
<CourseCard edit={false} course={post}></CourseCard>
)}
params={{
pageSize: 12,
where: {
type: PostType.COURSE,
students: {
some: {
id: user?.id,
},
},
...termsCondition,
...searchCondition,
},
}}
cols={4}></PostList>
</>
);
}

View File

@ -1,33 +1,10 @@
import PostList from "@web/src/components/models/course/list/PostList"; import BasePostLayout from "../layout/BasePost/BasePostLayout";
import { useAuth } from "@web/src/providers/auth-provider"; import MyLearningListContainer from "./components/MyLearningListContainer";
import { useMainContext } from "../layout/MainProvider";
import CourseCard from "../courses/components/CourseCard";
import { PostType } from "@nice/common";
export default function MyLearningPage() { export default function MyLearningPage() {
const { user } = useAuth();
const { searchCondition } = useMainContext();
return ( return (
<> <BasePostLayout>
<div className="p-4"> <MyLearningListContainer></MyLearningListContainer>
<PostList </BasePostLayout>
renderItem={(post) => (
<CourseCard edit={false} course={post}></CourseCard>
)}
params={{
pageSize: 12,
where: {
type: PostType.COURSE,
students: {
some: {
id: user?.id,
},
},
...searchCondition,
},
}}
cols={4}></PostList>
</div>
</>
); );
} }

View File

@ -1,22 +0,0 @@
import FilterSection from "../../courses/components/FilterSection";
import PathListContainer from "../components/PathListContainer";
export function PathListLayout() {
return (
<>
<div className="min-h-screen bg-gray-50">
<div className=" flex">
<div className="w-1/6">
<FilterSection></FilterSection>
</div>
<div className="w-5/6 p-4 ">
<PathListContainer></PathListContainer>
</div>
</div>
</div>
</>
);
}
export default PathListLayout;

View File

@ -1,5 +1,10 @@
import PathListLayout from "./layout/PathListLayout"; import BasePostLayout from "../layout/BasePost/BasePostLayout";
import PathListContainer from "./components/PathListContainer";
export default function PathPage() { export default function PathPage() {
return <PathListLayout /> return (
<BasePostLayout>
<PathListContainer></PathListContainer>
</BasePostLayout>
);
} }