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";
export function AllCoursesLayout() {
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() {
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 { useSearchParams } from "react-router-dom";
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";
export default function FilterSection() {

View File

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

View File

@ -1,29 +1,10 @@
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";
import BasePostLayout from "../layout/BasePost/BasePostLayout";
import MyDutyListContainer from "./components/MyDutyListContainer";
export default function MyDutyPage() {
const { user } = useAuth();
const { searchCondition } = useMainContext();
return (
<>
<div className="p-4">
<PostList
renderItem={(post) => (
<CourseCard edit course={post}></CourseCard>
)}
params={{
pageSize: 12,
where: {
type: PostType.COURSE,
authorId: user.id,
...searchCondition,
},
}}
cols={4}></PostList>
</div>
</>
<BasePostLayout>
<MyDutyListContainer></MyDutyListContainer>
</BasePostLayout>
);
}

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 { useAuth } from "@web/src/providers/auth-provider";
import { useMainContext } from "../layout/MainProvider";
import CourseCard from "../courses/components/CourseCard";
import { PostType } from "@nice/common";
import BasePostLayout from "../layout/BasePost/BasePostLayout";
import MyLearningListContainer from "./components/MyLearningListContainer";
export default function MyLearningPage() {
const { user } = useAuth();
const { searchCondition } = useMainContext();
return (
<>
<div className="p-4">
<PostList
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>
</>
<BasePostLayout>
<MyLearningListContainer></MyLearningListContainer>
</BasePostLayout>
);
}

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() {
return <PathListLayout />
return (
<BasePostLayout>
<PathListContainer></PathListContainer>
</BasePostLayout>
);
}