Merge branch 'main' of http://113.45.157.195:3003/insiinc/re-mooc
This commit is contained in:
commit
862f85083f
|
@ -35,6 +35,7 @@ const CategorySection = () => {
|
|||
|
||||
const handleMouseClick = useCallback((categoryId: string) => {
|
||||
setSelectedTerms({
|
||||
...selectedTerms,
|
||||
[TaxonomySlug.CATEGORY]: [categoryId],
|
||||
});
|
||||
navigate("/courses");
|
||||
|
|
|
@ -24,6 +24,7 @@ export default function FilterSection() {
|
|||
<div key={index}>
|
||||
<h3 className="text-lg font-medium mb-4">
|
||||
{tax?.name}
|
||||
{/* {JSON.stringify(items)} */}
|
||||
</h3>
|
||||
<TermParentSelector
|
||||
value={items}
|
||||
|
|
|
@ -29,6 +29,7 @@ interface CourseDetailContextType {
|
|||
setIsHeaderVisible: (visible: boolean) => 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}
|
||||
</CourseDetailContext.Provider>
|
||||
|
|
|
@ -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 (
|
||||
|
|
|
@ -37,7 +37,7 @@ export default function TermParentSelector({
|
|||
<Checkbox.Group onChange={handleCheckboxChange}>
|
||||
{data?.map((category) => (
|
||||
<div className="w-full h-9 p-2 my-1">
|
||||
<Checkbox className="text-base text-slate-700" key={category.id} value={category.id}>
|
||||
<Checkbox checked={value?.includes(category.id)} className="text-base text-slate-700" key={category.id} value={category.id}>
|
||||
{category.name}
|
||||
</Checkbox>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue