initialSite method

  1. @override
void initialSite(
  1. SocialSignInSiteConfig config,
  2. SocialSignInPageInfo pageInfo
)
override

Implementation

@override
void initialSite(
    SocialSignInSiteConfig config, SocialSignInPageInfo pageInfo) {
  try {
    SocialSignInSite? siteInfo;
    switch (config.site) {
      case SocialPlatform.apple:
        if (config is AppleSignInConfig) {
          siteInfo = AppleSignIn.fromProfile(config);
        }
        break;
      case SocialPlatform.facebook:
        if (config is FacebookSignInConfig) {
          siteInfo = FacebookSignIn.fromProfile(config);
        }
        break;
      case SocialPlatform.google:
        if (config is GoogleSignInConfig) {
          siteInfo = GoogleSignIn.fromProfile(config);
        }
        break;
      case SocialPlatform.microsoft:
        if (config is MicrosoftSignInConfig) {
          siteInfo = MicrosoftSignIn.fromProfile(config);
        }
        break;
      default:
        throw Exception("Unsupported social site!");
    }
    if (siteInfo == null) {
      throw Exception("Site config miss match!");
    }
    siteInfo.pageInfo = pageInfo;
    SocialSignInPlatform.lastSite = siteInfo;
    SocialSignInPlatform.setSite(config.site, siteInfo);
  } catch (e) {
    rethrow;
  }
}