public async modelToState()

in src/components/users/signin-social/signinSocialViewModelBinder.ts [32:87]


    public async modelToState(model: SigninSocialModel, state: WidgetState): Promise<void> {
        state.security = model.security;

        let classNames;

        if (model.styles) {
            const styleModel = await this.styleCompiler.getStyleModelAsync(model.styles);
            classNames = styleModel.classNames;
        }

        const identityProviders = await this.identityService.getIdentityProviders();

        const aadIdentityProvider = identityProviders.find(x => x.type === "aad");
        const aadB2CIdentityProvider = identityProviders.find(x => x.type === "aadB2C");

        // Is necessary for displaying Terms of Use. Will be called when the back-end implementation is done
        const termsOfService = await this.getTermsOfService();
        const termsOfUse = (termsOfService.text && termsOfService.enabled) ? termsOfService.text : undefined;

        if (aadIdentityProvider) {
            state.aadConfig = {
                classNames: classNames,
                label: model.aadLabel,
                replyUrl: model.aadReplyUrl || undefined,
                termsOfUse: aadB2CIdentityProvider ? undefined : termsOfUse // display terms of use only once if both configs are present
            };
        }

        if (aadB2CIdentityProvider) {
            state.aadB2CConfig = {
                classNames: classNames,
                label: model.aadB2CLabel,
                replyUrl: model.aadB2CReplyUrl || undefined,
                termsOfUse
            };
        }

        state.security = model.security;

        const settings = await this.settingsProvider.getSettings();
        state.mode = settings["environment"];

        if (model.styles) {
            state.styles = await this.styleCompiler.getStyleModelAsync(model.styles);
        }

        let isRedesignEnabled = false;
        
        try {
            isRedesignEnabled = !!(await this.siteService.getSetting(isRedesignEnabledSetting));
        } catch (error) {
            this.logger?.trackError(error, { message: `Failed to get setting: ${isRedesignEnabledSetting} - SigninSocialViewModelBinder` });
        } finally {
            state.isRedesignEnabled = isRedesignEnabled;
        }
    }