Usage

Capture a profile photo with the system camera UI.

This type is used by mediaPicker.capture

tsx
// Capture a profile photo with the system camera UI.
import { Button, Image, VStack, mediaPicker, signal } from 'kuito';

export function ProfilePhoto() {
  const uri = signal<string | null>(null);
  async function capture() {
    try {
      const result = await mediaPicker.capture({ mediaTypes: ['images'] });
      if (!result.canceled) uri.value = result.assets[0]?.uri ?? null;
    } catch (error) {
      console.error('Camera unavailable', error);
    }
  }
  return (
    <VStack>
      <Button onPress={() => void capture()}>Take profile photo</Button>
      {uri.value ? <Image src={uri.value} width={96} height={96} /> : null}
    </VStack>
  );
}

Type declaration

ts
export type CaptureOptions = {
  /** What the picker offers: `'images'` (the default), `'videos'`, or both. */
  mediaTypes?: MediaType | MediaType[];
  /** JPEG quality of written images, 0 to 1. 1, the default, keeps the most detail. */
  quality?: number;
  /** Images wider than this are scaled down to fit, keeping their aspect ratio. In pixels. */
  maxWidth?: number;
  /** Images taller than this are scaled down to fit, keeping their aspect ratio. In pixels. */
  maxHeight?: number;
  /** iOS: crop the image, or trim the video, in the system editor before it resolves. */
  allowsEditing?: boolean;
};

Members 5

NameTypeRequiredDescription
mediaTypesPickerMediaType | PickerMediaType[]NoWhat the picker offers: 'images' (the default), 'videos', or both.
qualitynumberNoJPEG quality of written images, 0 to 1. 1, the default, keeps the most detail.
maxWidthnumberNoImages wider than this are scaled down to fit, keeping their aspect ratio. In pixels.
maxHeightnumberNoImages taller than this are scaled down to fit, keeping their aspect ratio. In pixels.
allowsEditingbooleanNoiOS: crop the image, or trim the video, in the system editor before it resolves.
Generated from the public TypeScript declarations: signatures, props and defaults come from the checked source, descriptions from its JSDoc. No defaults are invented.