chore: remove scroll restoration
This commit is contained in:
parent
0684a0649b
commit
4eadd2f195
4 changed files with 3 additions and 43 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
import type React from "react";
|
import type React from "react";
|
||||||
import type { Colle } from "~/lib/api";
|
import type { Colle } from "~/lib/api";
|
||||||
|
|
||||||
import { Link, useNavigate } from "react-router";
|
import { Link } from "react-router";
|
||||||
import {
|
import {
|
||||||
Card,
|
Card,
|
||||||
CardContent,
|
CardContent,
|
||||||
|
|
@ -26,26 +26,14 @@ const getSubjectEmoji = (_: string) => {
|
||||||
type ColleCardProps = {
|
type ColleCardProps = {
|
||||||
colle: Colle;
|
colle: Colle;
|
||||||
onToggleFavorite: (id: number, favorite: boolean) => void;
|
onToggleFavorite: (id: number, favorite: boolean) => void;
|
||||||
beforeClick: () => void;
|
|
||||||
isFavorite: boolean;
|
isFavorite: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function ColleCard({
|
export default function ColleCard({
|
||||||
colle,
|
colle,
|
||||||
onToggleFavorite,
|
onToggleFavorite,
|
||||||
beforeClick,
|
|
||||||
isFavorite,
|
isFavorite,
|
||||||
}: ColleCardProps) {
|
}: ColleCardProps) {
|
||||||
const navigate = useNavigate();
|
|
||||||
|
|
||||||
// TODO: Remove this if scroll restoration is not needed (test first)
|
|
||||||
const handleCardClick = (e: React.MouseEvent) => {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
beforeClick();
|
|
||||||
setTimeout(() => navigate(`/colles/${colle.id}`), 100);
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: Favorites
|
// TODO: Favorites
|
||||||
const handleToggleFavorite = (e: React.MouseEvent) => {
|
const handleToggleFavorite = (e: React.MouseEvent) => {
|
||||||
e.stopPropagation(); // Prevent card click
|
e.stopPropagation(); // Prevent card click
|
||||||
|
|
@ -58,7 +46,7 @@ export default function ColleCard({
|
||||||
const subjectEmoji = getSubjectEmoji(colle.subject.name);
|
const subjectEmoji = getSubjectEmoji(colle.subject.name);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Link to={`/colles/${colle.id}`} onClick={handleCardClick}>
|
<Link to={`/colles/${colle.id}`}>
|
||||||
<Card
|
<Card
|
||||||
id={`colle-${colle.id}`}
|
id={`colle-${colle.id}`}
|
||||||
className="h-full cursor-pointer hover:shadow-md transition-shadow border-primary"
|
className="h-full cursor-pointer hover:shadow-md transition-shadow border-primary"
|
||||||
|
|
@ -94,7 +82,7 @@ export default function ColleCard({
|
||||||
)}
|
)}
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
|
|
||||||
<CardContent className="pb-0 pt-0 px-4" onClick={handleCardClick}>
|
<CardContent className="pb-0 pt-0 px-4">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between">
|
||||||
<div className="space-y-1">
|
<div className="space-y-1">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
|
|
||||||
|
|
@ -117,27 +117,6 @@ export default function Home() {
|
||||||
// sessionStorage.setItem('student', studentFilter)
|
// sessionStorage.setItem('student', studentFilter)
|
||||||
}, [subjectFilter, examinerFilter]);
|
}, [subjectFilter, examinerFilter]);
|
||||||
|
|
||||||
// Restore scroll position
|
|
||||||
// TODO: Test and check if needed!!
|
|
||||||
// // SCROLL
|
|
||||||
// const setScrollPosition = (colleId: number) => {
|
|
||||||
// sessionStorage.setItem("colles_position", colleId.toString());
|
|
||||||
// };
|
|
||||||
// const restoreScrollPosition = () => {
|
|
||||||
// const position = sessionStorage.getItem("colles_position");
|
|
||||||
// if (position) {
|
|
||||||
// const element = document.getElementById(`colle-${position}`);
|
|
||||||
// if (element) {
|
|
||||||
// element.scrollIntoView({ behavior: "smooth", block: "center" });
|
|
||||||
// sessionStorage.removeItem("colles_position");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// const location = useLocation();
|
|
||||||
// useEffect(() => {
|
|
||||||
// setTimeout(restoreScrollPosition, 500);
|
|
||||||
// }, [location]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="space-y-6 pb-20 md:pb-0">
|
<div className="space-y-6 pb-20 md:pb-0">
|
||||||
{/* Week Navigation */}
|
{/* Week Navigation */}
|
||||||
|
|
|
||||||
|
|
@ -84,11 +84,8 @@ export default function TabContent({
|
||||||
<ColleCard
|
<ColleCard
|
||||||
key={colle.id}
|
key={colle.id}
|
||||||
colle={colle}
|
colle={colle}
|
||||||
beforeClick={() => {}}
|
|
||||||
onToggleFavorite={() => {}}
|
onToggleFavorite={() => {}}
|
||||||
isFavorite={false}
|
isFavorite={false}
|
||||||
// TODO: Implement scroll position handling
|
|
||||||
// beforeClick={() => setScrollPosition(colle.id)}
|
|
||||||
// TODO: Implement favorite toggle
|
// TODO: Implement favorite toggle
|
||||||
// onToggleFavorite={handleToggleFavorite}
|
// onToggleFavorite={handleToggleFavorite}
|
||||||
// isFavorite={isFavorite(colle)}
|
// isFavorite={isFavorite(colle)}
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,6 @@ import { Separator } from "~/components/ui/separator";
|
||||||
import UserDropdown from "~/components/user-dropdown";
|
import UserDropdown from "~/components/user-dropdown";
|
||||||
import ColleDetailsSkeleton from "~/components/details/skeleton-details";
|
import ColleDetailsSkeleton from "~/components/details/skeleton-details";
|
||||||
import AttachmentItem from "~/components/details/attachment";
|
import AttachmentItem from "~/components/details/attachment";
|
||||||
// TODO: Scroll restoration
|
|
||||||
// import { ScrollToTopOnMount } from "~/components/noscroll";
|
|
||||||
import Error from "~/components/error";
|
import Error from "~/components/error";
|
||||||
import { Badge } from "~/components/ui/badge";
|
import { Badge } from "~/components/ui/badge";
|
||||||
import { AUTH_ERROR, useColle, useUser } from "~/lib/api";
|
import { AUTH_ERROR, useColle, useUser } from "~/lib/api";
|
||||||
|
|
@ -131,8 +129,6 @@ export default function ColleDetailPage() {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="container mx-auto py-6 px-4 pb-20 md:pb-6 md:py-8">
|
<div className="container mx-auto py-6 px-4 pb-20 md:pb-6 md:py-8">
|
||||||
{/* <ScrollToTopOnMount /> */}
|
|
||||||
|
|
||||||
<div className="flex justify-between items-center mb-4">
|
<div className="flex justify-between items-center mb-4">
|
||||||
<Button variant="outline" onClick={() => goBack(navigate)}>
|
<Button variant="outline" onClick={() => goBack(navigate)}>
|
||||||
<ArrowLeft className="h-4 w-4 mr-2" />
|
<ArrowLeft className="h-4 w-4 mr-2" />
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue