import React from "react"; import { Row, Col } from "react-bootstrap"; import { useTranslation } from "react-i18next"; import { AuthUser } from "@/services/user"; import { pushAlert } from "@/services/alert"; import { getHttpHighlightClient } from "@/http/highlight"; import { getHttpTimelineClient } from "@/http/timeline"; import { getHttpBookmarkClient } from "@/http/bookmark"; import TimelineBoard from "./TimelineBoard"; const BoardWithUser: React.FC<{ user: AuthUser }> = ({ user }) => { const { t } = useTranslation(); return ( <> getHttpBookmarkClient().list()} editHandler={{ onDelete: (timeline) => { return getHttpBookmarkClient() .delete(timeline) .catch((e) => { pushAlert({ message: "home.message.deleteBookmarkFail", type: "danger", }); throw e; }); }, onMove: (timeline, index, offset) => { return getHttpBookmarkClient() .move( { timeline, newPosition: index + offset + 1 } // +1 because backend contract: index starts at 1 ) .catch((e) => { pushAlert({ message: "home.message.moveBookmarkFail", type: "danger", }); throw e; }); }, }} /> getHttpTimelineClient().listTimeline({ relate: user.username }) } /> getHttpHighlightClient().list()} editHandler={ user.hasHighlightTimelineAdministrationPermission ? { onDelete: (timeline) => { return getHttpHighlightClient() .delete(timeline) .catch((e) => { pushAlert({ message: "home.message.deleteHighlightFail", type: "danger", }); throw e; }); }, onMove: (timeline, index, offset) => { return getHttpHighlightClient() .move( { timeline, newPosition: index + offset + 1 } // +1 because backend contract: index starts at 1 ) .catch((e) => { pushAlert({ message: "home.message.moveHighlightFail", type: "danger", }); throw e; }); }, } : undefined } /> getHttpTimelineClient().listTimeline({ visibility: "Public" }) } /> ); }; export default BoardWithUser;