fix(vue): correctly handle platform specific icons (#22200)

resolves #19078
This commit is contained in:
Liam DeBeasi
2020-09-28 15:07:21 -04:00
committed by GitHub
parent e84f80493c
commit 25d3ea6b8d
4 changed files with 48 additions and 16 deletions

View File

@ -0,0 +1,44 @@
import { h, defineComponent } from 'vue';
import { isPlatform } from '@ionic/core';
export const IonIcon = defineComponent({
name: 'IonIcon',
props: {
ariaLabel: String,
color: String,
flipRtl: Boolean,
icon: String,
ios: String,
lazy: String,
md: String,
mode: String,
name: String,
size: String,
src: String
},
setup(props, { slots }) {
return () => {
const { icon, ios, md } = props;
let iconToUse: typeof icon;
if (ios || md) {
if (isPlatform('ios')) {
iconToUse = ios ?? md ?? icon;
} else {
iconToUse = md ?? ios ?? icon;
}
} else {
iconToUse = icon;
}
return h(
'ion-icon',
{
...props,
icon: iconToUse
},
slots
)
}
}
});