import { NextPage } from "next"; import ListLayout from "../components/layout/ListLayout"; import { FC, useState } from "react"; import dayjs from "dayjs"; import 'dayjs/locale/zh-cn'; import relativeTime from "dayjs/plugin/relativeTime"; import useSWR from 'swr'; import Image from 'next/image'; import Lightbox from 'react-image-lightbox'; import 'react-image-lightbox/style.css'; dayjs.locale('zh-cn'); dayjs.extend(relativeTime); interface Resource { createdTs: number; externalLink: string; type: string; size: number; } interface Memos { id: string; content: string; createdTs: number; resourceList: Resource[]; } const fetcher = (url: string) => fetch(url).then(res => res.json()); const MemoCard: FC = (memo) => { const [isOpen, setIsOpen] = useState(false); const [photoIndex, setPhotoIndex] = useState(0); const images = memo.resourceList.filter(resource => resource.type.startsWith('image/')).map(resource => resource.externalLink); return (
可乐君
可乐君
{images.map((image, index) => (
{ setPhotoIndex(index); setIsOpen(true); }}>
Memo Image
))}
{isOpen && ( setIsOpen(false)} onMovePrevRequest={() => setPhotoIndex((photoIndex + images.length - 1) % images.length)} onMoveNextRequest={() => setPhotoIndex((photoIndex + 1) % images.length)} /> )}
); }; const Bibi: NextPage = () => { const { data, error } = useSWR('https://tgapi.xiaoayu.eu.org/?tag=SFCN&limit=10&type=memos', fetcher); if (error) return
加载失败
; if (!data) return
加载中...
; return (

说说✨

{data.map((memo: Memos) => )}
); }; export default Bibi;