static getElement()

in source/community/reactnative/src/models/model-factory.js [33:91]


    static getElement(payload, parent, hostConfig) {
        if (!payload) {
            return undefined;
        }
        switch (payload.type) {
            case ElementType.Image:
                return new Models.ImageModel(payload, parent, hostConfig);
            case ElementType.Media:
                return new Models.MediaModel(payload, parent, hostConfig);
            case ElementType.TextBlock:
                return new Models.TextBlockModel(payload, parent, hostConfig);
            case ElementType.RichTextBlock:
                return new Models.RichTextBlockModel(payload, parent, hostConfig);
            case ElementType.Column:
                return new Models.ColumnModel(payload, parent, hostConfig);
            case ElementType.ColumnSet:
                return new Models.ColumnSetModel(payload, parent, hostConfig);
            case ElementType.Container:
                return new Models.ContainerModel(payload, parent, hostConfig);
            case ElementType.FactSet:
                return new Models.FactSetModel(payload, parent, hostConfig);
            case ElementType.ImageSet:
                return new Models.ImageSetModel(payload, parent, hostConfig);
            case ElementType.TextInput:
                return new Models.TextInputModel(payload, parent, hostConfig);
            case ElementType.DateInput:
                return new Models.DateInputModel(payload, parent, hostConfig);
            case ElementType.TimeInput:
                return new Models.TimeInputModel(payload, parent, hostConfig);
            case ElementType.NumberInput:
                return new Models.NumberInputModel(payload, parent, hostConfig);
            case ElementType.ChoiceSetInput:
                return new Models.ChoiceSetModel(payload, parent, hostConfig);
            case ElementType.ToggleInput:
                return new Models.ToggleInputModel(payload, parent, hostConfig);
            case ElementType.AdaptiveCard:
                return new Models.AdaptiveCardModel(payload, parent, hostConfig);
            case ElementType.ActionOpenUrl:
                return new Models.OpenUrlActionModel(payload, parent, hostConfig);
            case ElementType.ActionSubmit:
                return new Models.SubmitActionModel(payload, parent, hostConfig);
            case ElementType.ActionExecute:
                return new Models.ExecuteActionModel(payload, parent, hostConfig);
            case ElementType.ActionShowCard:
                return new Models.ShowCardActionModel(payload, parent, hostConfig);
            case ElementType.ActionToggleVisibility:
                return new Models.ToggleVisibilityActionModel(payload, parent, hostConfig);
            case ElementType.ActionSet:
                return new Models.ActionSetModel(payload, parent, hostConfig);
            default:
                //Handling registered custom components
                const Element = Registry.getManager().getComponentOfType(payload.type);
                if (Element) {
                    return new BaseModel(payload, parent, hostConfig);
                } else {
                    return null;
                }
        }
    }