POWR/lib/theme/iconUtils.ts
2025-03-12 19:23:28 -04:00

41 lines
1.1 KiB
TypeScript

// lib/theme/iconUtils.ts
import { Platform } from 'react-native';
import { useColorScheme } from './useColorScheme';
import { FIXED_COLORS } from './colors';
export type IconVariant =
| 'primary'
| 'muted'
| 'destructive'
| 'success'
| 'warning';
export function useIconColor() {
const { isDarkColorScheme } = useColorScheme();
const getIconColor = (variant: IconVariant = 'primary') => {
// Use fixed colors that work on both platforms
switch (variant) {
case 'primary':
return FIXED_COLORS.primary;
case 'muted':
return isDarkColorScheme ? FIXED_COLORS.muted.dark : FIXED_COLORS.muted.light;
case 'destructive':
return FIXED_COLORS.destructive;
case 'success':
return FIXED_COLORS.success;
case 'warning':
return FIXED_COLORS.warning;
default:
return FIXED_COLORS.primary;
}
};
return {
getIconColor,
getIconProps: (variant: IconVariant = 'primary') => ({
color: getIconColor(variant),
strokeWidth: Platform.OS === 'android' ? 2 : 1.5,
})
};
}