Repository: expo/expo
File: packages/expo-router/src/link/elements.tsx (TypeScript)

Code before:
      identifier={identifier}
      icon={sf}
      title={label ?? title ?? ''}
      keepPresented={unstable_keepPresented}
      onSelected={() => onPress?.()}
    />
  );
}

export interface LinkMenuProps {
  /**
   * The title of the menu item
   */
  title?: string;
  /**
   * An optional subtitle for the submenu. Does not appear on `inline` menus.
   *
   * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information.
   */
  subtitle?: string;
  /**
   * Optional SF Symbol displayed alongside the menu item.
   */
  icon?: SFSymbol;
  /**
   * Custom image loaded using expo-image's `useImage` hook.
   * Takes priority over `icon` (SF Symbol) when both are provided.
   *
   * @example
   * ```tsx
   * import { useImage } from 'expo-image';
   * import { Link } from 'expo-router';
   *
   * const customIcon = useImage('https://picsum.photos/128', {
   *   maxWidth: 32,
   *   maxHeight: 32,
   * });
   *
   * <Link.Menu image={customIcon} title="Menu">
   *   <Link.MenuAction title="Action" onPress={() => {}} />
   * </Link.Menu>
   * ```
   */
  image?: ImageRef | null;
  /**
   * If `true`, the menu will be displayed as a palette.
   * This means that the menu will be displayed as one row
   *
   * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenu/options-swift.struct/displayaspalette) for more information.
   */
  palette?: boolean;

Review comment (suggestion):
```suggestion
   * Custom image loaded using `useImage()` hook from `expo-image`.
```

Let's improve readability of these sentences.

Code after:
      identifier={identifier}
      icon={sf}
      title={label ?? title ?? ''}
      keepPresented={unstable_keepPresented}
      onSelected={() => onPress?.()}
    />
  );
}

export interface LinkMenuProps {
  /**
   * The title of the menu item
   */
  title?: string;
  /**
   * An optional subtitle for the submenu. Does not appear on `inline` menus.
   *
   * @see [Apple documentation](https://developer.apple.com/documentation/uikit/uimenuelement/subtitle) for more information.
   */
  subtitle?: string;
  /**
   * Optional SF Symbol displayed alongside the menu item.
   */
  icon?: SFSymbol;
  /**
   * Custom image loaded using `useImage()` hook from `expo-image`.
   * Takes priority over `icon` (SF Symbol) when both are provided.
   *
   * @example
   * ```tsx
   * import { useImage } from 'expo-image';
   * import { Link } from 'expo-router';
   *
   * const customIcon = useImage('https://simpleicons.org/icons/expo.svg', {
   *   maxWidth: 24,
   *   maxHeight: 24,
   * });
   *
   * <Link.Menu image={customIcon} title="Menu">
   *   <Link.MenuAction title="Action" onPress={() => {}} />
   * </Link.Menu>
   * ```
   */
  image?: ImageRef | null;
  /**
   * If `true`, the menu will be displayed as a palette.
   * This means that the menu will be displayed as one row.
   * The `elementSize` property is ignored when palette is used, all items will be `elementSize="small"`. Use `elementSize="medium"` instead of `palette` to display actions with titles horizontally.
   *
   * > **Note**: Palette menus are only supported in submenus.
   *