index.jsx (2139B)
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 const { Switch, Route, Redirect, useLocation } = require("wouter"); 24 25 const query = require("../../../lib/query"); 26 27 const { 28 useTextInput, 29 } = require("../../../lib/form"); 30 31 const useFormSubmit = require("../../../lib/form/submit"); 32 33 const ProcessImport = require("./process"); 34 const ImportExportForm = require("./form"); 35 36 module.exports = function ImportExport({ baseUrl }) { 37 const form = { 38 domains: useTextInput("domains"), 39 exportType: useTextInput("exportType", { defaultValue: "plain", dontReset: true }) 40 }; 41 42 const [submitParse, parseResult] = useFormSubmit(form, query.useProcessDomainListMutation(), { changedOnly: false }); 43 44 const [_location, setLocation] = useLocation(); 45 46 return ( 47 <Switch> 48 <Route path={`${baseUrl}/process`}> 49 {parseResult.isSuccess ? ( 50 <> 51 <h1> 52 <span className="button" onClick={() => { 53 parseResult.reset(); 54 setLocation(baseUrl); 55 }}> 56 < back 57 </span> Confirm import: 58 </h1> 59 <ProcessImport 60 list={parseResult.data} 61 /> 62 </> 63 ) : <Redirect to={baseUrl} />} 64 </Route> 65 66 <Route> 67 {!parseResult.isSuccess ? ( 68 <ImportExportForm 69 form={form} 70 submitParse={submitParse} 71 parseResult={parseResult} 72 /> 73 ) : <Redirect to={`${baseUrl}/process`} />} 74 </Route> 75 </Switch> 76 ); 77 };