ui improvements

This commit is contained in:
Fabian Freund
2025-08-02 13:04:00 +02:00
parent 6ab4681e33
commit 20d066762a
2 changed files with 219 additions and 228 deletions
@@ -35,7 +35,9 @@ class ExtensionBadgeIcon extends StatelessWidget {
label: hasBadge ? Text(state.badgeText!) : null,
textColor: state.badgeTextColor,
backgroundColor: state.badgeBackgroundColor,
child: RepaintBoundary(
child: RawImage(image: state.icon?.value, width: 24, height: 24),
),
);
}
}
@@ -380,14 +380,20 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
return Stack(
alignment: Alignment.bottomRight,
children: [
Column(
children: [
DraggableScrollableHeader(
NestedScrollView(
physics: const NeverScrollableScrollPhysics(),
headerSliverBuilder: (context, innerBoxIsScrolled) => [
SliverToBoxAdapter(
child: DraggableScrollableHeader(
controller: draggableScrollableController,
child: _TabSheetHeader(onClose: onClose, treeViewEnabled: false),
child: _TabSheetHeader(
onClose: onClose,
treeViewEnabled: false,
),
Expanded(
child: HookConsumer(
),
),
],
body: HookConsumer(
builder: (context, ref, child) {
final gridViewKey = useMemoized(() => GlobalKey());
@@ -455,8 +461,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
() => sheetScrollController.hasClients,
);
useEffect(
() {
useEffect(() {
if (scrollControllerIsAttached) {
if (lastScroll.value != activeTab) {
final index = filteredTabEntities.value.indexWhere(
@@ -482,13 +487,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
}
return null;
},
[
filteredTabEntities,
activeTab,
scrollControllerIsAttached,
],
);
}, [filteredTabEntities, activeTab, scrollControllerIsAttached]);
final tabs = useMemoized(() {
return [
@@ -496,10 +495,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
(entity) => CustomDraggable(
key: Key(entity.tabId),
data: TabDragData(entity.tabId),
child: _TabDraggable(
entity: entity,
onClose: onClose,
),
child: _TabDraggable(entity: entity, onClose: onClose),
),
),
...suggestedTabEntities.value.map(
@@ -547,35 +543,31 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
return;
}
final tabId =
filteredTabEntities.value[oldIndex].tabId;
final tabId = filteredTabEntities.value[oldIndex].tabId;
final containerId = await ref
.read(tabDataRepositoryProvider.notifier)
.getContainerTabId(tabId);
final String key;
if (newIndex <= 0) {
key = await containerRepository
.getLeadingOrderKey(containerId);
key = await containerRepository.getLeadingOrderKey(
containerId,
);
} else if (newIndex >=
filteredTabEntities.value.length - 1) {
key = await containerRepository
.getTrailingOrderKey(containerId);
key = await containerRepository.getTrailingOrderKey(
containerId,
);
} else {
if (newIndex < oldIndex) {
key = await containerRepository
.getOrderKeyAfterTab(
filteredTabEntities
.value[newIndex - 1]
.tabId,
key = await containerRepository.getOrderKeyAfterTab(
filteredTabEntities.value[newIndex - 1].tabId,
containerId,
);
} else {
key = await containerRepository
.getOrderKeyBeforeTab(
filteredTabEntities
.value[newIndex + 1]
.tabId,
filteredTabEntities.value[newIndex + 1].tabId,
containerId,
);
}
@@ -589,8 +581,7 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
return GridView.builder(
key: gridViewKey,
controller: controller,
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
//Sync values for itemHeight calculation _calculateItemHeight
childAspectRatio: 0.75,
mainAxisSpacing: 8.0,
@@ -609,8 +600,6 @@ class ViewTabsSheetWidget extends HookConsumerWidget {
},
),
),
],
),
Padding(
padding: const EdgeInsets.only(
top: _TabSheetHeader.headerSize + 4,