gtsocial-umbx

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

form-with-data.jsx (1429B)


      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 { Error } = require("../../components/error");
     24 
     25 const Loading = require("../../components/loading");
     26 
     27 // Wrap Form component inside component that fires the RTK Query call,
     28 // so Form will only be rendered when data is available to generate form-fields for
     29 module.exports = function FormWithData({ dataQuery, DataForm, queryArg, ...formProps }) {
     30 	const { data, isLoading, isError, error } = dataQuery(queryArg);
     31 
     32 	if (isLoading) {
     33 		return (
     34 			<div>
     35 				<Loading />
     36 			</div>
     37 		);
     38 	} else if (isError) {
     39 		return (
     40 			<Error error={error} />
     41 		);
     42 	} else {
     43 		return <DataForm data={data} {...formProps} />;
     44 	}
     45 };