fix(react/vue): properly switch ionicon based on the mode when ios/md is set (#26924)

closes #26207
This commit is contained in:
Brandy Carney
2023-03-14 15:03:28 -04:00
committed by GitHub
parent af79673246
commit 1eb9a085b2
16 changed files with 383 additions and 14 deletions

View File

@ -1,7 +1,8 @@
import { isPlatform } from "@ionic/core/components";
import { defineCustomElement } from "ionicons/components/ion-icon.js";
import { h, defineComponent } from "vue";
import { getConfig } from "../utils";
export const IonIcon = /*@__PURE__*/ defineComponent({
name: "IonIcon",
props: {
@ -19,11 +20,15 @@ export const IonIcon = /*@__PURE__*/ defineComponent({
setup(props, { slots }) {
defineCustomElement();
return () => {
const { icon, ios, md } = props;
const { icon, ios, md, mode } = props;
let iconToUse: typeof icon;
const config = getConfig();
const iconMode = mode || config?.get("mode");
if (ios || md) {
if (isPlatform("ios")) {
if (iconMode === "ios") {
iconToUse = ios ?? md ?? icon;
} else {
iconToUse = md ?? ios ?? icon;