mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
chore: introduce breakpoint enum for constrains
This commit is contained in:
parent
63bf694d5c
commit
f81219e83e
@ -3,7 +3,6 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:fuzzywuzzy/fuzzywuzzy.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:gap/gap.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:skeletonizer/skeletonizer.dart';
|
||||
|
||||
@ -17,9 +16,11 @@ import 'package:spotube/components/playlist/playlist_card.dart';
|
||||
import 'package:spotube/components/shared/waypoint.dart';
|
||||
import 'package:spotube/extensions/constrains.dart';
|
||||
import 'package:spotube/extensions/context.dart';
|
||||
import 'package:spotube/pages/library/playlist_generate/playlist_generate.dart';
|
||||
import 'package:spotube/provider/authentication_provider.dart';
|
||||
import 'package:spotube/provider/spotify/spotify.dart';
|
||||
import 'package:spotube/utils/platform.dart';
|
||||
import 'package:spotube/utils/service_utils.dart';
|
||||
|
||||
class UserPlaylists extends HookConsumerWidget {
|
||||
const UserPlaylists({super.key});
|
||||
@ -110,7 +111,8 @@ class UserPlaylists extends HookConsumerWidget {
|
||||
icon: const Icon(SpotubeIcons.magic),
|
||||
label: Text(context.l10n.generate_playlist),
|
||||
onPressed: () {
|
||||
GoRouter.of(context).push("/library/generate");
|
||||
ServiceUtils.pushNamed(
|
||||
context, PlaylistGeneratorPage.name);
|
||||
},
|
||||
),
|
||||
const Gap(10),
|
||||
|
@ -1,6 +1,20 @@
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
|
||||
enum Breakpoint {
|
||||
xs,
|
||||
sm,
|
||||
md,
|
||||
lg,
|
||||
xl,
|
||||
xxl;
|
||||
|
||||
bool operator <=(Breakpoint other) => index <= other.index;
|
||||
bool operator <(Breakpoint other) => index < other.index;
|
||||
bool operator >(Breakpoint other) => index > other.index;
|
||||
bool operator >=(Breakpoint other) => index >= other.index;
|
||||
}
|
||||
|
||||
// ignore: constant_identifier_names
|
||||
const Breakpoints = (
|
||||
xs: 480.0,
|
||||
@ -22,6 +36,15 @@ extension SliverBreakpoints on SliverConstraints {
|
||||
crossAxisExtent > Breakpoints.lg && crossAxisExtent <= Breakpoints.xl;
|
||||
bool get is2Xl => crossAxisExtent > Breakpoints.xl;
|
||||
|
||||
Breakpoint get breakpoint {
|
||||
if (isXs) return Breakpoint.xs;
|
||||
if (isSm) return Breakpoint.sm;
|
||||
if (isMd) return Breakpoint.md;
|
||||
if (isLg) return Breakpoint.lg;
|
||||
if (isXl) return Breakpoint.xl;
|
||||
return Breakpoint.xxl;
|
||||
}
|
||||
|
||||
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
||||
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
||||
bool get lgAndUp => isLg || isXl || is2Xl;
|
||||
@ -45,6 +68,15 @@ extension ContainerBreakpoints on BoxConstraints {
|
||||
biggest.width > Breakpoints.lg && biggest.width <= Breakpoints.xl;
|
||||
bool get is2Xl => biggest.width > Breakpoints.xl;
|
||||
|
||||
Breakpoint get breakpoint {
|
||||
if (isXs) return Breakpoint.xs;
|
||||
if (isSm) return Breakpoint.sm;
|
||||
if (isMd) return Breakpoint.md;
|
||||
if (isLg) return Breakpoint.lg;
|
||||
if (isXl) return Breakpoint.xl;
|
||||
return Breakpoint.xxl;
|
||||
}
|
||||
|
||||
bool get smAndUp => isSm || isMd || isLg || isXl || is2Xl;
|
||||
bool get mdAndUp => isMd || isLg || isXl || is2Xl;
|
||||
bool get lgAndUp => isLg || isXl || is2Xl;
|
||||
|
Loading…
Reference in New Issue
Block a user