Last active
August 7, 2024 17:00
-
-
Save leoafarias/c4a6edb99fc831652cb4dca238a062f4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class OnPlatformVariant extends ContextVariant { | |
final TargetPlatform platform; | |
const OnPlatformVariant(this.platform); | |
@override | |
bool when(BuildContext context) { | |
return defaultTargetPlatform == platform; | |
} | |
@override | |
List<Object?> get props => [platform]; | |
@override | |
Object get mergeKey => '$runtimeType.${platform.name}'; | |
} | |
class OnWebVariant extends ContextVariant { | |
const OnWebVariant(); | |
@override | |
bool when(_) => kIsWeb; | |
} | |
extension OnContextVariantUtilityX on OnContextVariantUtility { | |
OnPlatformVariant onPlatform(TargetPlatform platform) { | |
return OnPlatformVariant(platform); | |
} | |
OnPlatformVariant get android => OnPlatformVariant(TargetPlatform.android); | |
OnPlatformVariant get fuchsia => OnPlatformVariant(TargetPlatform.fuchsia); | |
OnPlatformVariant get ios => OnPlatformVariant(TargetPlatform.iOS); | |
OnPlatformVariant get linux => OnPlatformVariant(TargetPlatform.linux); | |
OnPlatformVariant get macos => OnPlatformVariant(TargetPlatform.macOS); | |
OnPlatformVariant get windows => OnPlatformVariant(TargetPlatform.windows); | |
OnWebVariant get web => OnWebVariant(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment