UNPKG

@coinmeca/ui

Version:

This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

29 lines 1.11 kB
'use client'; import { useCallback, useState } from 'react'; import { sort as s } from '../lib/utils'; export default function useSort() { const [sort, update] = useState(); const sortArrow = useCallback((key) => { switch (typeof key) { case 'string': return key === sort?.key ? (sort?.direction ? 'sort-up' : 'sort-down') : 'sort'; case 'object': return key?.key === sort?.key ? (sort?.direction ? 'sort-up' : 'sort-down') : 'sort'; default: return 'sort'; } }, [sort]); const setSort = useCallback((sort) => { update((state) => { return { ...sort, direction: state?.key === sort?.key ? !state?.direction : undefined, }; }); }, []); const sorting = useCallback((list) => { return list ? (sort && sort?.key !== '' && sort?.key?.length > 0 ? s(list, sort?.key, sort?.type, sort?.direction) : list) : []; }, [sort]); return { sort, sorting, setSort, sortArrow }; } //# sourceMappingURL=useSort.js.map