kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
fix duplicated type in usePolicyReducer
rodzic
6a12e755a7
commit
ad405c557f
|
@ -1,15 +1,8 @@
|
||||||
import { isEqual } from 'es-toolkit';
|
import { isEqual } from 'es-toolkit';
|
||||||
import { useReducer, useRef, useEffect, useMemo } from 'react';
|
import { useReducer, useRef, useEffect, useMemo } from 'react';
|
||||||
|
|
||||||
import { PolicyItem, PolicyParam, PolicySpecItem } from 'soapbox/utils/policies.ts';
|
import { PolicyState, PolicySpecItem, PolicyParam, PolicyItem } from 'soapbox/utils/policies.ts';
|
||||||
|
|
||||||
// Define the state type
|
|
||||||
export type PolicyState = {
|
|
||||||
policies: PolicySpecItem[];
|
|
||||||
fields: Record<string, PolicyParam>;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Define action types
|
|
||||||
export type PolicyAction =
|
export type PolicyAction =
|
||||||
| { type: 'ADD_POLICY'; policy: PolicySpecItem }
|
| { type: 'ADD_POLICY'; policy: PolicySpecItem }
|
||||||
| { type: 'REMOVE_POLICY'; name: string }
|
| { type: 'REMOVE_POLICY'; name: string }
|
||||||
|
@ -96,7 +89,6 @@ export const createPolicyReducer = (allPolicies: PolicyItem[]) => (state: Policy
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Custom hook to initialize the reducer
|
|
||||||
export const usePolicyReducer = (allPolicies: PolicyItem[], initialPolicies: PolicySpecItem[], initialFields: Record<string, PolicyParam>) => {
|
export const usePolicyReducer = (allPolicies: PolicyItem[], initialPolicies: PolicySpecItem[], initialFields: Record<string, PolicyParam>) => {
|
||||||
const policyReducer = useMemo(() => createPolicyReducer(allPolicies), [allPolicies]);
|
const policyReducer = useMemo(() => createPolicyReducer(allPolicies), [allPolicies]);
|
||||||
const [state, dispatch] = useReducer(policyReducer, { policies: initialPolicies, fields: initialFields });
|
const [state, dispatch] = useReducer(policyReducer, { policies: initialPolicies, fields: initialFields });
|
||||||
|
|
Ładowanie…
Reference in New Issue