react-native-sortables
Version:
Powerful Sortable Components for Flexible Content Reordering in React Native
24 lines (23 loc) • 854 B
JavaScript
;
import { useMemo, useRef } from 'react';
import { error, typedMemo } from '../../../utils';
import { useOrderUpdater } from '../hooks';
export function useStrategyKey(strategy) {
const counterRef = useRef(0);
return useMemo(() => typeof strategy === 'string' ? strategy : String(counterRef.current++), [strategy]);
}
function OrderUpdaterComponent({
predefinedStrategies,
strategy,
triggerOrigin
}) {
const useStrategy = typeof strategy === 'string' ? predefinedStrategies[strategy] : strategy;
if (!useStrategy || typeof useStrategy !== 'function') {
throw error(`'${String(useStrategy)}' is not a valid ordering strategy`);
}
const updater = useStrategy();
useOrderUpdater(updater, triggerOrigin);
return null;
}
export default typedMemo(OrderUpdaterComponent);
//# sourceMappingURL=OrderUpdaterComponent.js.map