import { useState } from 'react'; import { Head, Link, router } from '@inertiajs/react'; import { Plus, Star, ArrowDownNarrowWide, ArrowUpNarrowWide, ChevronsLeft, ChevronsRight, Trash2, RefreshCw } from 'lucide-react'; import AppLayout from '@/Layouts/AppLayout.jsx'; import { Badge } from "@/components/ui/badge"; import { BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator } from '@/components/ui/breadcrumb'; import { Button } from '@/components/ui/button'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip'; import { useToast } from '@/hooks/use-toast'; export default function Chapters({ auth, comic, chapters, histories, offset }) { const [group, setGroup] = useState('default'); const [favourites, setFavourites] = useState(auth.user.favourites); const [ascending, setAscending] = useState(true); const { toast } = useToast(); const favouriteOnClickHandler = (pathword) => { axios.post(route('comics.postFavourite'), { pathword: pathword }).then(res => { setFavourites(res.data); toast({ title: "All set", description: `${comic.comic.name} is now in / remove your favorite list.`, }); }); } const removeAllHistoriesOnClickHandler = (pathword) => { router.visit(route('comics.destroyHistory', { pathword: pathword }), { method: 'DELETE', replace: false, preserveScroll: true, preserveState: true, showProgress: false, only: ['histories'], onSuccess: () => { toast({ title: "All set", description: `All histories have been removed.`, }); } }); } const forceReload = (pathword) => { router.get(`/comic/${ comic.comic.path_word }?reload=true`, {}, { only: ['chapters'], preserveState: true, }); } const groupOnClickHandler = (pathword) => { router.get(`/comic/${ comic.comic.path_word }?group=${ pathword }`, {}, { only: ['chapters'], preserveState: true, onSuccess: () => { setGroup(pathword); setAscending(true); } }); } const ComicChapterLink = (props) => { const isNew = Date.now() - Date.parse(props.datetime_created) < 6.048e+8; // 1 week const isRead = histories.includes(props.uuid); return (

Updated: { props.datetime_created }

); } const toggleAscending = (e) => { setAscending(!ascending); } return ( { comic.comic.name } }> { comic.comic.name }
{ comic.comic.name }
{
Alias { comic.comic.alias }
Status { comic.comic.region.display } / { comic.comic.status.display }
Category { comic.comic.theme.map(t => { t.name } ) }
Authors { comic.comic.author.map(a => ( { a.name } ) ) }
Description { comic.comic.brief }
Updated At { comic.comic.datetime_updated } - { comic.comic.last_chapter.name }
groupOnClickHandler(e)} >
{ Object.entries(comic.groups).map((g, i) => ( { g[1].name } { g[1].count } ) ) }

Set order as { ascending ? 'Descending' : 'Ascending' }

Force reload

Remove all histories for this comic

{ (chapters.total > chapters.limit && chapters.offset > 0) && ( ) } { chapters.list.sort((a, b) => ascending ? (a.index - b.index) : (b.index - a.index)).map(c => ( ) ) } { (chapters.total > (chapters.limit + chapters.offset)) && ( ) }
); }