From 637f188ebec71fe4b0b80bbab4592d4c269d7d93 Mon Sep 17 00:00:00 2001
From: tobi <31960611+tsmethurst@users.noreply.github.com>
Date: Tue, 17 Oct 2023 12:46:06 +0200
Subject: [feature] Allow import/export/creation of domain allows via admin
 panel (#2264)

* it's happening!

* aaa

* fix silly whoopsie

* it's working pa! it's working ma!

* model report parameters

* shuffle some more stuff around

* getting there

* oo hoo

* finish tidying up for now

* aaa

* fix use form submit errors

* peepee poo poo

* aaaaa

* ffff

* they see me typin', they hatin'

* boop

* aaa

* oooo

* typing typing tappa tappa

* almost done typing

* weee

* alright

* push it push it real good doo doo doo doo doo doo

* thingy no worky

* almost done

* mutation modifers not quite right

* hmm

* it works

* view blocks + allows nicely

* it works!

* typia install

* the old linterino

* linter plz
---
 web/source/settings/lib/form/check-list.jsx | 181 ----------------------------
 1 file changed, 181 deletions(-)
 delete mode 100644 web/source/settings/lib/form/check-list.jsx

(limited to 'web/source/settings/lib/form/check-list.jsx')

diff --git a/web/source/settings/lib/form/check-list.jsx b/web/source/settings/lib/form/check-list.jsx
deleted file mode 100644
index 2f649dba6..000000000
--- a/web/source/settings/lib/form/check-list.jsx
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
-	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 <http://www.gnu.org/licenses/>.
-*/
-
-const React = require("react");
-const syncpipe = require("syncpipe");
-const { createSlice } = require("@reduxjs/toolkit");
-const { enableMapSet } = require("immer");
-
-enableMapSet(); // for use in reducers
-
-const { reducer, actions } = createSlice({
-	name: "checklist",
-	initialState: {}, // not handled by slice itself
-	reducers: {
-		updateAll: (state, { payload: checked }) => {
-			const selectedEntries = new Set();
-			return {
-				entries: syncpipe(state.entries, [
-					(_) => Object.values(_),
-					(_) => _.map((entry) => {
-						if (checked) {
-							selectedEntries.add(entry.key);
-						}
-						return [entry.key, {
-							...entry,
-							checked
-						}];
-					}),
-					(_) => Object.fromEntries(_)
-				]),
-				selectedEntries
-			};
-		},
-		update: (state, { payload: { key, value } }) => {
-			if (value.checked !== undefined) {
-				if (value.checked === true) {
-					state.selectedEntries.add(key);
-				} else {
-					state.selectedEntries.delete(key);
-				}
-			}
-
-			state.entries[key] = {
-				...state.entries[key],
-				...value
-			};
-		},
-		updateMultiple: (state, { payload }) => {
-			payload.forEach(([key, value]) => {
-				if (value.checked !== undefined) {
-					if (value.checked === true) {
-						state.selectedEntries.add(key);
-					} else {
-						state.selectedEntries.delete(key);
-					}
-				}
-
-				state.entries[key] = {
-					...state.entries[key],
-					...value
-				};
-			});
-		}
-	}
-});
-
-function initialState({ entries, uniqueKey, initialValue }) {
-	const selectedEntries = new Set();
-	return {
-		entries: syncpipe(entries, [
-			(_) => _.map((entry) => {
-				let key = entry[uniqueKey];
-				let checked = entry.checked ?? initialValue;
-
-				if (checked) {
-					selectedEntries.add(key);
-				} else {
-					selectedEntries.delete(key);
-				}
-
-				return [
-					key,
-					{
-						...entry,
-						key,
-						checked
-					}
-				];
-			}),
-			(_) => Object.fromEntries(_)
-		]),
-		selectedEntries
-	};
-}
-
-module.exports = function useCheckListInput({ name }, { entries, uniqueKey = "key", initialValue = false }) {
-	const [state, dispatch] = React.useReducer(reducer, null,
-		() => initialState({ entries, uniqueKey, initialValue }) // initial state
-	);
-
-	const toggleAllRef = React.useRef(null);
-
-	React.useEffect(() => {
-		if (toggleAllRef.current != null) {
-			let some = state.selectedEntries.size > 0;
-			let all = false;
-			if (some) {
-				all = state.selectedEntries.size == Object.values(state.entries).length;
-			}
-			toggleAllRef.current.checked = all;
-			toggleAllRef.current.indeterminate = some && !all;
-		}
-		// only needs to update when state.selectedEntries changes, not state.entries
-		// eslint-disable-next-line react-hooks/exhaustive-deps
-	}, [state.selectedEntries]);
-
-	const reset = React.useCallback(
-		() => dispatch(actions.updateAll(initialValue)),
-		[initialValue]
-	);
-
-	const onChange = React.useCallback(
-		(key, value) => dispatch(actions.update({ key, value })),
-		[]
-	);
-
-	const updateMultiple = React.useCallback(
-		(entries) => dispatch(actions.updateMultiple(entries)),
-		[]
-	);
-
-	return React.useMemo(() => {
-		function toggleAll(e) {
-			let checked = e.target.checked;
-			if (e.target.indeterminate) {
-				checked = false;
-			}
-			dispatch(actions.updateAll(checked));
-		}
-
-		function selectedValues() {
-			return Array.from((state.selectedEntries)).map((key) => ({
-				...state.entries[key] // returned as new object, because reducer state is immutable
-			}));
-		}
-
-		return Object.assign([
-			state,
-			reset,
-			{ name }
-		], {
-			name,
-			value: state.entries,
-			onChange,
-			selectedValues,
-			reset,
-			someSelected: state.selectedEntries.size > 0,
-			updateMultiple,
-			toggleAll: {
-				ref: toggleAllRef,
-				onChange: toggleAll
-			}
-		});
-	}, [state, reset, name, onChange, updateMultiple]);
-};
\ No newline at end of file
-- 
cgit v1.2.3

