chore: format all frontend files (#430)
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
import { act, renderHook } from '@testing-library/react-hooks';
|
||||
import useToggle from '../index';
|
||||
|
||||
|
||||
@@ -13,50 +13,52 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { useState, useMemo } from 'react'
|
||||
|
||||
type State = any
|
||||
import { useState, useMemo } from 'react';
|
||||
|
||||
type State = any;
|
||||
|
||||
export interface ReturnValue<T = State> {
|
||||
state: T;
|
||||
toggle: (value?: T) => void;
|
||||
}
|
||||
|
||||
function useToggle<T = boolean>(): ReturnValue<T>
|
||||
function useToggle<T = boolean>(): ReturnValue<T>;
|
||||
|
||||
function useToggle<T = State>(defaultValue: T): ReturnValue<T>
|
||||
function useToggle<T = State>(defaultValue: T): ReturnValue<T>;
|
||||
|
||||
function useToggle<T = State, U = State>(
|
||||
defaultValue: T,
|
||||
reverseValue: U,
|
||||
): ReturnValue<T | U>
|
||||
): ReturnValue<T | U>;
|
||||
|
||||
function useToggle<D extends State = State, R extends State = State>(
|
||||
defaultValue: D = false as D,
|
||||
reverseValue?: R,
|
||||
) {
|
||||
const [state, setState] = useState<D | R>(defaultValue)
|
||||
const [state, setState] = useState<D | R>(defaultValue);
|
||||
|
||||
const actions = useMemo(() => {
|
||||
const reverseValueOrigin = (reverseValue === undefined ? !defaultValue : reverseValue) as D | R
|
||||
const reverseValueOrigin = (
|
||||
reverseValue === undefined ? !defaultValue : reverseValue
|
||||
) as D | R;
|
||||
|
||||
const toggle = (value?: D | R) => {
|
||||
if (value !== undefined) {
|
||||
setState(value)
|
||||
return
|
||||
setState(value);
|
||||
return;
|
||||
}
|
||||
setState((s) => (s === defaultValue ? reverseValueOrigin : defaultValue))
|
||||
}
|
||||
setState(s => (s === defaultValue ? reverseValueOrigin : defaultValue));
|
||||
};
|
||||
return {
|
||||
toggle,
|
||||
}
|
||||
}, [defaultValue, reverseValue])
|
||||
};
|
||||
}, [defaultValue, reverseValue]);
|
||||
|
||||
return {
|
||||
state,
|
||||
...actions,
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export default useToggle
|
||||
export default useToggle;
|
||||
|
||||
Reference in New Issue
Block a user