From b4a311db1061e9da82427dcc33a4820a71c63d08 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 12 Dec 2022 16:06:28 +0900 Subject: [PATCH] Add min and max utils --- packages/yoshiki/package.json | 2 +- packages/yoshiki/src/native/units.ts | 50 ++++++++++++++++++---------- 2 files changed, 34 insertions(+), 18 deletions(-) diff --git a/packages/yoshiki/package.json b/packages/yoshiki/package.json index da374c7..d552a29 100644 --- a/packages/yoshiki/package.json +++ b/packages/yoshiki/package.json @@ -1,6 +1,6 @@ { "name": "yoshiki", - "version": "0.2.11", + "version": "0.2.12", "author": "Zoe Roux (https://github.com/AnonymusRaccoon)", "license": "MIT", "keywords": [ diff --git a/packages/yoshiki/src/native/units.ts b/packages/yoshiki/src/native/units.ts index de61647..5172138 100644 --- a/packages/yoshiki/src/native/units.ts +++ b/packages/yoshiki/src/native/units.ts @@ -5,21 +5,37 @@ import { Dimensions, PixelRatio, Platform } from "react-native"; -export const px = (value: number) => value; +const px = + Platform.OS === "web" + ? (value: number): number => `${value}px` as unknown as number + : (value: number): number => value; + export const percent = (value: number) => `${value}%`; -// prettier-ignore -export const em = Platform.OS === "web" - ? (value: number): number => `${value}em` as unknown as number - : (value: number): number => PixelRatio.getFontScale() * 16 * value; -// prettier-ignore -export const rem = Platform.OS === "web" - ? (value: number): number => `${value}rem` as unknown as number - : em; -// prettier-ignore -export const vw = Platform.OS === "web" - ? (value: number): number => `${value}vw` as unknown as number - : (value: number): number => value * Dimensions.get("window").width / 100; -// prettier-ignore -export const vh = Platform.OS === "web" - ? (value: number): number => `${value}vh` as unknown as number - : (value: number): number => value * Dimensions.get("window").height / 100; + +export const em = + Platform.OS === "web" + ? (value: number): number => `${value}em` as unknown as number + : (value: number): number => PixelRatio.getFontScale() * 16 * value; + +export const rem = + Platform.OS === "web" ? (value: number): number => `${value}rem` as unknown as number : em; + +export const vw = + Platform.OS === "web" + ? (value: number): number => `${value}vw` as unknown as number + : (value: number): number => (value * Dimensions.get("window").width) / 100; + +export const vh = + Platform.OS === "web" + ? (value: number): number => `${value}vh` as unknown as number + : (value: number): number => (value * Dimensions.get("window").height) / 100; + +export const min = + Platform.OS === "web" + ? (...values: number[]): number => `min(${values.join(", ")})` as unknown as number + : (...values: number[]): number => Math.min(...values); + +export const max = + Platform.OS === "web" + ? (...values: number[]): number => `max(${values.join(", ")})` as unknown as number + : (...values: number[]): number => Math.max(...values);