You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.2 KiB
57 lines
1.2 KiB
2 years ago
|
import type { MapToken } from '../../interface';
|
||
|
|
||
|
const genRadius = (
|
||
|
radiusBase: number,
|
||
|
): Pick<MapToken, 'radiusXS' | 'radiusSM' | 'radiusLG' | 'radiusBase' | 'radiusOuter'> => {
|
||
|
let radiusLG = radiusBase;
|
||
|
let radiusSM = radiusBase;
|
||
|
let radiusXS = radiusBase;
|
||
|
let radiusOuter = radiusBase;
|
||
|
|
||
|
// radiusLG
|
||
|
if (radiusBase < 6 && radiusBase >= 5) {
|
||
|
radiusLG = radiusBase + 1;
|
||
|
} else if (radiusBase < 16 && radiusBase >= 6) {
|
||
|
radiusLG = radiusBase + 2;
|
||
|
} else if (radiusBase >= 16) {
|
||
|
radiusLG = radiusBase;
|
||
|
}
|
||
|
|
||
|
// radiusSM
|
||
|
if (radiusBase < 7 && radiusBase >= 5) {
|
||
|
radiusSM = 4;
|
||
|
} else if (radiusBase < 8 && radiusBase >= 7) {
|
||
|
radiusSM = 5;
|
||
|
} else if (radiusBase < 14 && radiusBase >= 8) {
|
||
|
radiusSM = 6;
|
||
|
} else if (radiusBase < 16 && radiusBase >= 14) {
|
||
|
radiusSM = 7;
|
||
|
} else if (radiusBase >= 16) {
|
||
|
radiusSM = radiusBase / 2;
|
||
|
}
|
||
|
|
||
|
// radiusXS
|
||
|
if (radiusBase < 6 && radiusBase >= 2) {
|
||
|
radiusXS = 1;
|
||
|
} else if (radiusBase >= 6) {
|
||
|
radiusXS = 2;
|
||
|
}
|
||
|
|
||
|
// radiusOuter
|
||
|
if (radiusBase > 4 && radiusBase < 8) {
|
||
|
radiusOuter = 4;
|
||
|
} else if (radiusBase >= 8) {
|
||
|
radiusOuter = 6;
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
radiusBase,
|
||
|
radiusXS,
|
||
|
radiusSM,
|
||
|
radiusLG,
|
||
|
radiusOuter,
|
||
|
};
|
||
|
};
|
||
|
|
||
|
export default genRadius;
|