chahinebrini 2c1eecd1f7 feat(native): geräte-spezifische PNG-Icons (iphone/android/macbook/computer)
deviceImage()-Helper mappt Plattform→assets/devices/*.png; ersetzt Ionicons
in Geräte-Rows, MagicSheet und Detail-Sheet.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:40:25 +02:00

36 lines
1.3 KiB
TypeScript

import type { ImageSourcePropType } from 'react-native';
/**
* Geräte-spezifische PNG-Icons (apps/rebreak-native/assets/devices).
* React Native braucht statische require()-Pfade — daher das feste Mapping.
*/
const ICONS = {
iphone: require('../../assets/devices/iphone.png'),
android: require('../../assets/devices/android.png'),
tablet: require('../../assets/devices/tablet.png'),
macbook: require('../../assets/devices/macbook.png'),
laptop: require('../../assets/devices/laptop.png'),
computer: require('../../assets/devices/computer.png'),
} as const;
/**
* Wählt das passende Geräte-PNG anhand Plattform (+ optional Modell-String).
* Fällt auf `laptop` zurück (generischer Desktop).
*/
export function deviceImage(
platform?: string | null,
model?: string | null,
): ImageSourcePropType {
const p = (platform ?? '').toLowerCase();
const m = (model ?? '').toLowerCase();
if (p.startsWith('ipad') || m.includes('ipad') || p.includes('tablet')) return ICONS.tablet;
if (p.startsWith('ios') || p.startsWith('iphone') || m.includes('iphone')) return ICONS.iphone;
if (p.startsWith('android')) return ICONS.android;
if (p.startsWith('mac') || p === 'darwin' || m.includes('macbook') || m.includes('mac')) {
return ICONS.macbook;
}
if (p.startsWith('win') || m.includes('windows')) return ICONS.computer;
return ICONS.laptop;
}