|
|
|
|
@ -59,9 +59,10 @@ class MapBottomSheet extends HookConsumerWidget {
|
|
|
|
|
child: DraggableScrollableSheet(
|
|
|
|
|
controller: sheetController,
|
|
|
|
|
minChildSize: sheetMinExtent,
|
|
|
|
|
maxChildSize: 0.5,
|
|
|
|
|
maxChildSize: 0.8,
|
|
|
|
|
initialChildSize: sheetMinExtent,
|
|
|
|
|
snap: true,
|
|
|
|
|
snapSizes: [sheetMinExtent, 0.5, 0.8],
|
|
|
|
|
shouldCloseOnMinExtent: false,
|
|
|
|
|
builder: (ctx, scrollController) => MapAssetGrid(
|
|
|
|
|
controller: scrollController,
|
|
|
|
|
@ -78,18 +79,23 @@ class MapBottomSheet extends HookConsumerWidget {
|
|
|
|
|
),
|
|
|
|
|
ValueListenableBuilder(
|
|
|
|
|
valueListenable: bottomSheetOffset,
|
|
|
|
|
builder: (ctx, value, child) => Positioned(
|
|
|
|
|
right: 0,
|
|
|
|
|
bottom: context.height * (value + 0.02),
|
|
|
|
|
child: child!,
|
|
|
|
|
),
|
|
|
|
|
child: ElevatedButton(
|
|
|
|
|
onPressed: onZoomToLocation,
|
|
|
|
|
style: ElevatedButton.styleFrom(
|
|
|
|
|
shape: const CircleBorder(),
|
|
|
|
|
),
|
|
|
|
|
child: const Icon(Icons.my_location),
|
|
|
|
|
),
|
|
|
|
|
builder: (context, value, child) {
|
|
|
|
|
return Positioned(
|
|
|
|
|
right: 0,
|
|
|
|
|
bottom: context.height * (value + 0.02),
|
|
|
|
|
child: AnimatedOpacity(
|
|
|
|
|
opacity: value < 0.8 ? 1 : 0,
|
|
|
|
|
duration: const Duration(milliseconds: 150),
|
|
|
|
|
child: ElevatedButton(
|
|
|
|
|
onPressed: onZoomToLocation,
|
|
|
|
|
style: ElevatedButton.styleFrom(
|
|
|
|
|
shape: const CircleBorder(),
|
|
|
|
|
),
|
|
|
|
|
child: const Icon(Icons.my_location),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
|