UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

69 lines (68 loc) 1.67 kB
import { useGlobalIsEditingContext as h } from "../../utils/context/GlobalIsEditingContext.js"; import { useState as R, useEffect as f, useCallback as a } from "react"; import { noop as E } from "lodash-es"; import v from "./useSortResourceAccessList.js"; const w = "User or team already has permissions.", P = []; function M(I = {}) { const { initialResourceAccessList: L = P, onChange: S = E, onError: m = E } = I, [o, c] = R(!1), { setIsEditing: u } = h(); f(() => (u(o), () => { u(!1); }), [o, u]); const [n, t] = R(L), [p, y] = R(!1), { sortedResourceAccessList: l, isLoading: A } = v(n); f(() => { !o && !A && !p && l != null && (t(l), y(!0)); }, [p, o, A, l]), f(() => { S(n); }, [n]); const D = a( (e, r) => { c(!0), e && t((s) => { if (s.some( (d) => d.principalId === e )) m(w); else { const d = { principalId: e, accessType: r }; return [...s, d]; } return s; }); }, [m] ), g = a( (e, r) => { c(!0), t( (s) => s.map((i) => i.principalId === e ? { ...i, accessType: r } : i) ); }, [] ), _ = a((e) => { c(!0), t( (r) => r.filter( (s) => s.principalId !== e ) ); }, []), C = a(() => { c(!1); }, []); return { resourceAccessList: n, setResourceAccessList: t, addResourceAccessItem: D, updateResourceAccessItem: g, removeResourceAccessItem: _, resetDirtyState: C }; } export { w as PRINCIPAL_ALREADY_ADDED_ERROR_MESSAGE, M as default }; //# sourceMappingURL=useUpdateAcl.js.map