mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-17 23:50:52 +08:00

* test:useOrientation add test * feat: util, delete type direction * feat: change useVertical and useOrientation * feat: change useOrientation ts * feat: change useOrientation and test * feat: change useOrientation types * feat: change ts * feat: const-function * feat: delect includes * feat[Slider]: Unified use of orientation attribute * feat: change useOrientation ,Reduce return * feat: useOrientation ,change params name * feat: useOrientation ,mergedOrientation * docs: Modify document format * docs: Modify the sorting of document properties * docs: Modify the sorting of document properties(2) * feat: add isValidOrientation --------- Co-authored-by: 刘欢 <lh01217311@antgroup.com>
29 lines
968 B
TypeScript
29 lines
968 B
TypeScript
import { useMemo } from 'react';
|
|
|
|
export type Orientation = 'horizontal' | 'vertical';
|
|
|
|
const isValidOrientation = (orientation?: Orientation) => {
|
|
return orientation === 'horizontal' || orientation === 'vertical';
|
|
};
|
|
|
|
export default function useOrientation(
|
|
orientation?: Orientation,
|
|
vertical?: boolean,
|
|
legacyDirection?: Orientation,
|
|
): [Orientation, boolean] {
|
|
return useMemo(() => {
|
|
const validOrientation = isValidOrientation(orientation);
|
|
let mergedOrientation: Orientation;
|
|
if (validOrientation) {
|
|
mergedOrientation = orientation;
|
|
} else if (typeof vertical === 'boolean') {
|
|
mergedOrientation = vertical ? 'vertical' : 'horizontal';
|
|
} else {
|
|
const validLegacyDirection = isValidOrientation(legacyDirection);
|
|
mergedOrientation = validLegacyDirection ? legacyDirection : 'horizontal';
|
|
}
|
|
|
|
return [mergedOrientation, mergedOrientation === 'vertical'];
|
|
}, [legacyDirection, orientation, vertical]);
|
|
}
|