TootBottomSheet: fix #13

* use the .reblog to replace the remote toot
This commit is contained in:
thislight 2024-09-25 20:32:50 +08:00
parent fba983ff52
commit 16af3c0592
No known key found for this signature in database
GPG key ID: A50F9451AC56A63E

View file

@ -8,12 +8,7 @@ import {
type Component,
} from "solid-js";
import Scaffold from "../material/Scaffold";
import {
AppBar,
CircularProgress,
IconButton,
Toolbar,
} from "@suid/material";
import { AppBar, CircularProgress, IconButton, Toolbar } from "@suid/material";
import { Title } from "../material/typography";
import {
ArrowBack as BackIcon,
@ -41,8 +36,6 @@ function getCache(acct: string, id: string) {
}
}
const TootBottomSheet: Component = (props) => {
const params = useParams<{ acct: string; id: string }>();
const location = useLocation<{ tootBottomSheetPushedCount?: number }>();
@ -122,6 +115,11 @@ const TootBottomSheet: Component = (props) => {
const onBookmark = async () => {
const status = remoteToot()!;
const client = actSession()!.client;
setRemoteToot(
Object.assign({}, status, {
bookmarked: !status.bookmarked,
}),
);
const result = await (status.bookmarked
? client.v1.statuses.$select(status.id).unbookmark()
: client.v1.statuses.$select(status.id).bookmark());
@ -141,12 +139,17 @@ const TootBottomSheet: Component = (props) => {
? client.v1.statuses.$select(status.id).unreblog()
: client.v1.statuses.$select(status.id).reblog());
vibrate([20, 30]);
setRemoteToot(result);
setRemoteToot(result.reblog!);
};
const onFav = async () => {
const status = remoteToot()!;
const client = actSession()!.client;
setRemoteToot(
Object.assign({}, status, {
favourited: !status.favourited,
}),
);
const result = await (status.favourited
? client.v1.statuses.$select(status.id).favourite()
: client.v1.statuses.$select(status.id).unfavourite());