diff --git a/apps/web/src/app/main/home/components/CategorySection.tsx b/apps/web/src/app/main/home/components/CategorySection.tsx
index 4c8141e..7d23030 100755
--- a/apps/web/src/app/main/home/components/CategorySection.tsx
+++ b/apps/web/src/app/main/home/components/CategorySection.tsx
@@ -35,6 +35,7 @@ const CategorySection = () => {
const handleMouseClick = useCallback((categoryId: string) => {
setSelectedTerms({
+ ...selectedTerms,
[TaxonomySlug.CATEGORY]: [categoryId],
});
navigate("/courses");
diff --git a/apps/web/src/app/main/layout/BasePost/FilterSection.tsx b/apps/web/src/app/main/layout/BasePost/FilterSection.tsx
index 9742e47..d7eccd4 100755
--- a/apps/web/src/app/main/layout/BasePost/FilterSection.tsx
+++ b/apps/web/src/app/main/layout/BasePost/FilterSection.tsx
@@ -24,6 +24,7 @@ export default function FilterSection() {
{tax?.name}
+ {/* {JSON.stringify(items)} */}
void; // 新增
canEdit?: boolean;
userIsLearning?: boolean;
+ setUserIsLearning:(learning: boolean) => void;
}
interface CourseFormProviderProps {
@@ -56,9 +57,14 @@ export function CourseDetailProvider({
{ enabled: Boolean(editId) }
);
- const userIsLearning = useMemo(() => {
- return (course?.studentIds || []).includes(user?.id);
- }, [user, course, isLoading]);
+ // const userIsLearning = useMemo(() => {
+ // return (course?.studentIds || []).includes(user?.id);
+ // }, [user, course, isLoading]);
+ const [userIsLearning, setUserIsLearning] = useState(false);
+ useEffect(()=>{
+ console.log(course?.studentIds,user?.id)
+ setUserIsLearning((course?.studentIds || []).includes(user?.id));
+ },[user, course, isLoading])
const canEdit = useMemo(() => {
const isAuthor = isAuthenticated && user?.id === course?.authorId;
const isRoot = hasSomePermissions(RolePerms?.MANAGE_ANY_POST);
@@ -121,6 +127,7 @@ export function CourseDetailProvider({
setIsHeaderVisible,
canEdit,
userIsLearning,
+ setUserIsLearning
}}>
{children}
diff --git a/apps/web/src/components/models/course/detail/JoinLearingButton.tsx b/apps/web/src/components/models/course/detail/JoinLearingButton.tsx
index 68c4243..942a7de 100644
--- a/apps/web/src/components/models/course/detail/JoinLearingButton.tsx
+++ b/apps/web/src/components/models/course/detail/JoinLearingButton.tsx
@@ -12,15 +12,17 @@ import {
EditTwoTone,
LoginOutlined,
} from "@ant-design/icons";
+import toast from "react-hot-toast";
export default function CourseOperationBtns() {
const { id } = useParams();
const { isAuthenticated, user, hasSomePermissions, hasEveryPermissions } =
useAuth();
const navigate = useNavigate();
- const { course, canEdit, userIsLearning } = useContext(CourseDetailContext);
+ const { course, canEdit, userIsLearning, setUserIsLearning} = useContext(CourseDetailContext);
const { update } = useStaff();
const [isHovered, setIsHovered] = useState(false);
+
const toggleLearning = async () => {
if (!userIsLearning) {
await update.mutateAsync({
@@ -31,7 +33,10 @@ export default function CourseOperationBtns() {
},
},
});
+ setUserIsLearning(true)
+ toast.success("加入学习成功");
} else {
+
await update.mutateAsync({
where: { id: user?.id },
data: {
@@ -42,6 +47,8 @@ export default function CourseOperationBtns() {
},
},
});
+ toast.success("退出学习成功");
+ setUserIsLearning(false)
}
};
return (
diff --git a/apps/web/src/components/models/term/term-parent-selector.tsx b/apps/web/src/components/models/term/term-parent-selector.tsx
index b604390..2b479b6 100755
--- a/apps/web/src/components/models/term/term-parent-selector.tsx
+++ b/apps/web/src/components/models/term/term-parent-selector.tsx
@@ -37,7 +37,7 @@ export default function TermParentSelector({
{data?.map((category) => (
-
+
{category.name}