react-native-sortables
Version:
Powerful Sortable Components for Flexible Content Reordering in React Native
33 lines (32 loc) • 1.17 kB
JavaScript
;
import { useMemo, useRef } from 'react';
import { useDebugContext } from '../../../debug';
import { error, typedMemo } from '../../../utils';
import { useCommonValuesContext } from '../CommonValuesProvider';
import { useCustomHandleContext } from '../CustomHandleProvider';
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,
useAdditionalValues
}) {
const factory = typeof strategy === 'string' ? predefinedStrategies[strategy] : strategy;
if (!factory && typeof strategy === 'string') {
throw error(`'${strategy}' is not a valid ordering strategy`);
}
const updater = factory({
debugContext: useDebugContext(),
...useCommonValuesContext(),
...useCustomHandleContext(),
...useAdditionalValues()
});
useOrderUpdater(updater, triggerOrigin);
return null;
}
export default typedMemo(OrderUpdaterComponent);
//# sourceMappingURL=OrderUpdaterComponent.js.map