Improve iPhone lens compatibility
This commit is contained in:
parent
cbb663193c
commit
7e207ed95b
@ -1,10 +1,11 @@
|
||||
import { AiFillApple } from 'react-icons/ai';
|
||||
import { pathForCamera } from '@/app/paths';
|
||||
import { Camera, formatCameraText, isCameraApple } from '.';
|
||||
import { Camera, formatCameraText } from '.';
|
||||
import EntityLink, {
|
||||
EntityLinkExternalProps,
|
||||
} from '@/components/primitives/EntityLink';
|
||||
import IconCamera from '@/components/icons/IconCamera';
|
||||
import { isCameraApple } from '@/platforms/apple';
|
||||
|
||||
export default function PhotoCamera({
|
||||
camera,
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
import type { Photo } from '@/photo';
|
||||
import { isCameraMakeApple } from '@/platforms/apple';
|
||||
import { parameterize } from '@/utility/string';
|
||||
|
||||
const CAMERA_PLACEHOLDER: Camera = { make: 'Camera', model: 'Model' };
|
||||
|
||||
const CAMERA_MAKE_APPLE = 'apple';
|
||||
|
||||
export type Camera = {
|
||||
make: string
|
||||
model: string
|
||||
@ -58,12 +57,6 @@ export const cameraFromPhoto = (
|
||||
? { make: photo.make, model: photo.model }
|
||||
: fallback ?? CAMERA_PLACEHOLDER;
|
||||
|
||||
const isCameraMakeApple = (make?: string) =>
|
||||
make?.toLocaleLowerCase() === CAMERA_MAKE_APPLE;
|
||||
|
||||
export const isCameraApple = ({ make }: Camera) =>
|
||||
isCameraMakeApple(make);
|
||||
|
||||
export const formatCameraText = (
|
||||
{ make, model: modelRaw }: Camera,
|
||||
length:
|
||||
|
||||
@ -6,11 +6,11 @@ import {
|
||||
Camera,
|
||||
cameraFromPhoto,
|
||||
formatCameraText,
|
||||
isCameraApple,
|
||||
} from '@/camera';
|
||||
import { NextImageSize } from '@/platforms/next-image';
|
||||
import { AiFillApple } from 'react-icons/ai';
|
||||
import IconCamera from '@/components/icons/IconCamera';
|
||||
import { isCameraApple } from '@/platforms/apple';
|
||||
|
||||
export default function CameraImageResponse({
|
||||
camera: cameraProp,
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Photo } from '@/photo';
|
||||
import { parameterize } from '@/utility/string';
|
||||
import { formatAppleLensText, isLensMakeApple } from './apple';
|
||||
import { formatAppleLensText, isLensMakeApple } from '../platforms/apple';
|
||||
|
||||
const LENS_PLACEHOLDER: Lens = { make: 'Lens', model: 'Model' };
|
||||
|
||||
|
||||
@ -1,10 +1,17 @@
|
||||
/* eslint-disable max-len */
|
||||
import { Lens } from '.';
|
||||
import { Camera } from '@/camera';
|
||||
import { Lens } from '../lens';
|
||||
|
||||
const LENS_MAKE_APPLE = 'apple';
|
||||
const MAKE_APPLE = 'apple';
|
||||
|
||||
export const isCameraMakeApple = (make?: string) =>
|
||||
make?.toLocaleLowerCase() === MAKE_APPLE;
|
||||
|
||||
export const isCameraApple = ({ make }: Camera) =>
|
||||
isCameraMakeApple(make);
|
||||
|
||||
export const isLensMakeApple = (make?: string) =>
|
||||
make?.toLocaleLowerCase() === LENS_MAKE_APPLE;
|
||||
make?.toLocaleLowerCase() === MAKE_APPLE;
|
||||
|
||||
export const isLensApple = ({ make }: Lens) =>
|
||||
isLensMakeApple(make);
|
||||
@ -19,7 +26,7 @@ export const formatAppleLensText = (
|
||||
side,
|
||||
focalLength,
|
||||
aperture,
|
||||
] = (/iPhone ([0-9a-z]{1,3}(?: (?:Pro|Max))*).*?(back|front).*?([0-9\.]+)mm.*?f\/([0-9\.]+)/gi.exec(model) ?? []);
|
||||
] = (/iPhone ([0-9a-z]{1,3}(?: (?:Pro|Max|Plus))*).*?(back|front).*?([0-9\.]+)mm.*?f\/([0-9\.]+)/gi.exec(model) ?? []);
|
||||
|
||||
const format = (lensName: string, includeFocalLength = true) => {
|
||||
let result = '';
|
||||
@ -64,6 +71,8 @@ export const formatAppleLensText = (
|
||||
case '1.78': return format('Main');
|
||||
case '2.8': return format('Telephoto');
|
||||
}
|
||||
default:
|
||||
return format('Back', true);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user