gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 								&lt; 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 };