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) {
          if (Platform.isMacOS) {
            siteInfo = AppleSignIn.fromProfile(config);
          } else if (Platform.isWindows) {
            // throw UnsupportedError("Unsupported sign in with apple on windows.");
            siteInfo = AppleSignInWindows.fromProfile(config);
          }
        }
        break;
      case SocialPlatform.facebook:
        if (config is FacebookSignInConfig) {
          siteInfo = FacebookSignInDesktop.fromProfile(config);
        }
        break;
      case SocialPlatform.google:
        if (config is GoogleSignInConfig) {
          siteInfo = GoogleSignInDesktop.fromProfile(config);
        }
        break;
      case SocialPlatform.microsoft:
        if (config is MicrosoftSignInConfig) {
          siteInfo = MicrosoftSignInDesktop.fromProfile(config);
        }
        break;
      default:
        throw Exception("Unsupported social site of desktop!");
    }
    if (siteInfo == null) {
      throw Exception("Site config miss match!");
    }
    siteInfo.pageInfo = pageInfo;
    SocialSignInPlatform.lastSite = siteInfo;
    SocialSignInPlatform.setSite(config.site, siteInfo);
  } catch (e) {
    rethrow;
  }
}