Skip to content

Commit

Permalink
fix(react): fixing type of icon in ToastOptions, ActionSheetOptions, f…
Browse files Browse the repository at this point in the history
…ixes #20100
  • Loading branch information
elylucas committed Dec 17, 2019
1 parent 027306a commit 857bab6
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 3 deletions.
3 changes: 2 additions & 1 deletion core/src/components/toast/readme.md
Expand Up @@ -117,6 +117,7 @@ async function presentToastWithOptions() {
```tsx
import React, { useState } from 'react';
import { IonToast, IonContent, IonButton } from '@ionic/react';
import { star } from 'ionicons/icons';

export const ToastExample: React.FC = () => {
const [showToast1, setShowToast1] = useState(false);
Expand All @@ -141,7 +142,7 @@ export const ToastExample: React.FC = () => {
buttons={[
{
side: 'start',
icon: 'star',
icon: star,
text: 'Favorite',
handler: () => {
console.log('Favorite clicked');
Expand Down
19 changes: 18 additions & 1 deletion packages/react/src/components/IonActionSheet.tsx
@@ -1,5 +1,22 @@
import { ActionSheetOptions, actionSheetController } from '@ionic/core';
import { ActionSheetButton as ActionSheetButtonCore, ActionSheetOptions as ActionSheetOptionsCore, actionSheetController as actionSheetControllerCore } from '@ionic/core';

import { createOverlayComponent } from './createOverlayComponent';

export interface ActionSheetButton extends Omit<ActionSheetButtonCore, 'icon'> {
icon?: {
ios: string;
md: string;
};
}

export interface ActionSheetOptions extends Omit<ActionSheetOptionsCore, 'buttons'> {
buttons?: (ActionSheetButton | string)[];
}

const actionSheetController = {
create: (options: ActionSheetOptions) => actionSheetControllerCore.create(options as any),
dismiss: (data?: any, role?: string | undefined, id?: string | undefined) => actionSheetControllerCore.dismiss(data, role, id),
getTop: () => actionSheetControllerCore.getTop()
};

export const IonActionSheet = /*@__PURE__*/createOverlayComponent<ActionSheetOptions, HTMLIonActionSheetElement>('IonActionSheet', actionSheetController);
19 changes: 18 additions & 1 deletion packages/react/src/components/IonToast.tsx
@@ -1,5 +1,22 @@
import { ToastOptions, toastController } from '@ionic/core';
import { ToastButton as ToastButtonCore, ToastOptions as ToastOptionsCore, toastController as toastControllerCore } from '@ionic/core';

import { createControllerComponent } from './createControllerComponent';

export interface ToastButton extends Omit<ToastButtonCore, 'icon'> {
icon?: {
ios: string;
md: string;
};
}

export interface ToastOptions extends Omit<ToastOptionsCore, 'buttons'> {
buttons?: (ToastButton | string)[];
}

const toastController = {
create: (options: ToastOptions) => toastControllerCore.create(options as any),
dismiss: (data?: any, role?: string | undefined, id?: string | undefined) => toastControllerCore.dismiss(data, role, id),
getTop: () => toastControllerCore.getTop()
};

export const IonToast = /*@__PURE__*/createControllerComponent<ToastOptions, HTMLIonToastElement>('IonToast', toastController);

0 comments on commit 857bab6

Please sign in to comment.