Usage

Offer actions for an item

This type is used by actionSheet

tsx
import { Pressable, Text, actionSheet } from 'kuito';

export function EpisodeMenu(props: {
  id: string;
  title: string;
  onDelete: (id: string) => Promise<void>;
}) {
  const remove = { text: 'Delete', style: 'destructive' } as const;

  return (
    <Pressable
      onPress={async (event) => {
        const picked = await actionSheet({
          buttons: [
            { text: 'Share' },
            { text: 'Add to list' },
            remove,
            { text: 'Cancel', style: 'cancel' },
          ],
          title: props.title,
          anchor: { x: event.pageX ?? 0, y: event.pageY ?? 0 },
        });

        if (picked === remove) await props.onDelete(props.id);
      }}
    >
      <Text>More</Text>
    </Pressable>
  );
}

Type declaration

ts
export type ActionSheetButton = {
  text: string;
  /**
   * `cancel` is shown apart, at the bottom, and is what dismissing the sheet
   * picks; at most one button is `cancel`. `destructive` is drawn in red.
   */
  style?: AlertButtonStyle;
  /** Shown dimmed; it can't be picked. */
  disabled?: boolean;
};

Members 3

NameTypeRequiredDescription
textstringYes—
styleAlertButtonStyleNocancel is shown apart, at the bottom, and is what dismissing the sheet picks; at most one button is cancel. destructive is drawn in red.
disabledbooleanNoShown dimmed; it can't be picked.
Generated from the public TypeScript declarations: signatures, props and defaults come from the checked source, descriptions from its JSDoc. No defaults are invented.