index.js (1562B)
1 /* 2 GoToSocial 3 Copyright (C) GoToSocial Authors admin@gotosocial.org 4 SPDX-License-Identifier: AGPL-3.0-or-later 5 6 This program is free software: you can redistribute it and/or modify 7 it under the terms of the GNU Affero General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU Affero General Public License for more details. 15 16 You should have received a copy of the GNU Affero General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 "use strict"; 21 22 const React = require("react"); 23 24 const ParseFromToot = require("./parse-from-toot"); 25 26 const query = require("../../../lib/query"); 27 const Loading = require("../../../components/loading"); 28 const { Error } = require("../../../components/error"); 29 30 module.exports = function RemoteEmoji() { 31 // local emoji are queried for shortcode collision detection 32 const { 33 data: emoji = [], 34 isLoading, 35 error 36 } = query.useListEmojiQuery({ filter: "domain:local" }); 37 38 const emojiCodes = React.useMemo(() => { 39 return new Set(emoji.map((e) => e.shortcode)); 40 }, [emoji]); 41 42 return ( 43 <> 44 <h1>Custom Emoji (remote)</h1> 45 {error && 46 <Error error={error} /> 47 } 48 {isLoading 49 ? <Loading /> 50 : <> 51 <ParseFromToot emoji={emoji} emojiCodes={emojiCodes} /> 52 </> 53 } 54 </> 55 ); 56 };