/* GoToSocial Copyright (C) GoToSocial Authors admin@gotosocial.org SPDX-License-Identifier: AGPL-3.0-or-later This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ import React, { useEffect } from "react"; import { useRoute, Link, Redirect } from "wouter"; import { useComboBoxInput, useFileInput, useValue } from "../../../lib/form"; import { CategorySelect } from "../category-select"; import useFormSubmit from "../../../lib/form/submit"; import { useBaseUrl } from "../../../lib/navigation/util"; import FakeToot from "../../../components/fake-toot"; import FormWithData from "../../../lib/form/form-with-data"; import Loading from "../../../components/loading"; import { FileInput } from "../../../components/form/inputs"; import MutationButton from "../../../components/form/mutation-button"; import { Error } from "../../../components/error"; import { useGetEmojiQuery, useEditEmojiMutation, useDeleteEmojiMutation } from "../../../lib/query/admin/custom-emoji"; export default function EmojiDetailRoute({ }) { const baseUrl = useBaseUrl(); let [_match, params] = useRoute(`${baseUrl}/:emojiId`); if (params?.emojiId == undefined) { return ; } else { return (
< go back
); } } function EmojiDetailForm({ data: emoji }) { const baseUrl = useBaseUrl(); const form = { id: useValue("id", emoji.id), category: useComboBoxInput("category", { source: emoji }), image: useFileInput("image", { withPreview: true, maxSize: 50 * 1024 // TODO: get from instance api }) }; const [modifyEmoji, result] = useFormSubmit(form, useEditEmojiMutation()); // Automatic submitting of category change useEffect(() => { if ( form.category.hasChanged() && !form.category.state.open && !form.category.isNew) { modifyEmoji(); } /* eslint-disable-next-line react-hooks/exhaustive-deps */ }, [form.category.hasChanged(), form.category.isNew, form.category.state.open]); const [deleteEmoji, deleteResult] = useDeleteEmojiMutation(); if (deleteResult.isSuccess) { return ; } return ( <>
{emoji.shortcode}

{emoji.shortcode}

deleteEmoji(emoji.id)} className="danger" showError={false} result={deleteResult} />

Modify this emoji {result.isLoading && }

Look at this new custom emoji {emoji.shortcode} isn't it cool? {result.error && } {deleteResult.error && }
); }