chore: bump line length to 120 (#20191)

This commit is contained in:
shenlong
2025-07-25 08:07:22 +05:30
committed by GitHub
parent 977c9b96ba
commit ad65e9011a
517 changed files with 4520 additions and 9514 deletions
@@ -21,9 +21,7 @@ RecursiveFolder? _findFolderInStructure(
RecursiveFolder targetFolder,
) {
for (final folder in rootFolder.subfolders) {
if (targetFolder.path == '/' &&
folder.path.isEmpty &&
folder.name == targetFolder.name) {
if (targetFolder.path == '/' && folder.path.isEmpty && folder.name == targetFolder.name) {
return folder;
}
@@ -54,9 +52,7 @@ class FolderPage extends HookConsumerWidget {
useEffect(
() {
if (folder == null) {
ref
.read(folderStructureProvider.notifier)
.fetchFolders(sortOrder.value);
ref.read(folderStructureProvider.notifier).fetchFolders(sortOrder.value);
}
return null;
},
@@ -67,8 +63,7 @@ class FolderPage extends HookConsumerWidget {
useEffect(
() {
if (folder != null && folderState.hasValue) {
final updatedFolder =
_findFolderInStructure(folderState.value!, folder!);
final updatedFolder = _findFolderInStructure(folderState.value!, folder!);
if (updatedFolder != null) {
currentFolder.value = updatedFolder;
}
@@ -79,8 +74,7 @@ class FolderPage extends HookConsumerWidget {
);
void onToggleSortOrder() {
final newOrder =
sortOrder.value == SortOrder.asc ? SortOrder.desc : SortOrder.asc;
final newOrder = sortOrder.value == SortOrder.asc ? SortOrder.desc : SortOrder.asc;
ref.read(folderStructureProvider.notifier).fetchFolders(newOrder);
@@ -151,9 +145,7 @@ class FolderContent extends HookConsumerWidget {
useEffect(
() {
if (folder == null) return;
ref
.read(folderRenderListProvider(folder!).notifier)
.fetchAssets(sortOrder);
ref.read(folderRenderListProvider(folder!).notifier).fetchAssets(sortOrder);
return null;
},
[folder],
@@ -211,13 +203,10 @@ class FolderContent extends HookConsumerWidget {
),
)
: null,
onTap: () =>
context.pushRoute(FolderRoute(folder: subfolder)),
onTap: () => context.pushRoute(FolderRoute(folder: subfolder)),
),
),
if (!list.isEmpty &&
list.allAssets != null &&
list.allAssets!.isNotEmpty)
if (!list.isEmpty && list.allAssets != null && list.allAssets!.isNotEmpty)
...list.allAssets!.map(
(asset) => LargeLeadingTile(
onTap: () {
+3 -7
View File
@@ -25,8 +25,7 @@ class LibraryPage extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
context.locale;
final trashEnabled =
ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash));
final trashEnabled = ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash));
return Scaffold(
appBar: const ImmichAppBar(),
@@ -388,8 +387,7 @@ class PlacesCollectionCard extends StatelessWidget {
child: DecoratedBox(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(20)),
color:
context.colorScheme.secondaryContainer.withAlpha(100),
color: context.colorScheme.secondaryContainer.withAlpha(100),
),
child: IgnorePointer(
child: MapThumbnail(
@@ -399,9 +397,7 @@ class PlacesCollectionCard extends StatelessWidget {
-157.91959,
),
showAttribution: false,
themeMode: context.isDarkTheme
? ThemeMode.dark
: ThemeMode.light,
themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light,
),
),
),
@@ -54,8 +54,7 @@ class LocalAlbumsPage extends HookConsumerWidget {
color: context.colorScheme.onSurfaceSecondary,
),
),
onTap: () => context
.pushRoute(AlbumViewerRoute(albumId: albums[index].id)),
onTap: () => context.pushRoute(AlbumViewerRoute(albumId: albums[index].id)),
),
);
},
@@ -23,11 +23,10 @@ class PinAuthPage extends HookConsumerWidget {
final isBetaTimeline = Store.isBetaTimelineEnabled;
Future<void> registerBiometric(String pinCode) async {
final isRegistered =
await ref.read(localAuthProvider.notifier).registerBiometric(
context,
pinCode,
);
final isRegistered = await ref.read(localAuthProvider.notifier).registerBiometric(
context,
pinCode,
);
if (isRegistered) {
context.showSnackBar(
@@ -101,8 +100,7 @@ class PinAuthPage extends HookConsumerWidget {
autoFocus: true,
onSuccess: (_) {
if (isBetaTimeline) {
context
.replaceRoute(const DriftLockedFolderRoute());
context.replaceRoute(const DriftLockedFolderRoute());
} else {
context.replaceRoute(const LockedRoute());
}
@@ -63,10 +63,8 @@ class DriftPartnerPage extends HookConsumerWidget {
builder: (BuildContext context) {
return ConfirmDialog(
title: "stop_photo_sharing",
content: "partner_page_stop_sharing_content"
.tr(namedArgs: {'partner': partner.name}),
onOk: () =>
ref.read(partnerUsersProvider.notifier).removePartner(partner),
content: "partner_page_stop_sharing_content".tr(namedArgs: {'partner': partner.name}),
onOk: () => ref.read(partnerUsersProvider.notifier).removePartner(partner),
);
},
);
@@ -53,8 +53,7 @@ class PartnerPage extends HookConsumerWidget {
},
);
if (selectedUser != null) {
final ok =
await ref.read(partnerServiceProvider).addPartner(selectedUser);
final ok = await ref.read(partnerServiceProvider).addPartner(selectedUser);
if (ok) {
ref.invalidate(partnerSharedByProvider);
} else {
@@ -73,8 +72,7 @@ class PartnerPage extends HookConsumerWidget {
builder: (BuildContext context) {
return ConfirmDialog(
title: "stop_photo_sharing",
content: "partner_page_stop_sharing_content"
.tr(namedArgs: {'partner': u.name}),
content: "partner_page_stop_sharing_content".tr(namedArgs: {'partner': u.name}),
onOk: () => ref.read(partnerServiceProvider).removePartner(u),
);
},
@@ -149,8 +147,7 @@ class PartnerPage extends HookConsumerWidget {
centerTitle: false,
actions: [
IconButton(
onPressed:
availableUsers.whenOrNull(data: (data) => addNewUsersHandler),
onPressed: availableUsers.whenOrNull(data: (data) => addNewUsersHandler),
icon: const Icon(Icons.person_add),
tooltip: "add_partner".tr(),
),
@@ -38,9 +38,8 @@ class PartnerDetailPage extends HookConsumerWidget {
if (toggleInProcess) return;
toggleInProcess = true;
try {
final ok = await ref
.read(partnerSharedWithProvider.notifier)
.updatePartner(partner, inTimeline: !inTimeline.value);
final ok =
await ref.read(partnerSharedWithProvider.notifier).updatePartner(partner, inTimeline: !inTimeline.value);
if (ok) {
inTimeline.value = !inTimeline.value;
final action = inTimeline.value ? "shown on" : "hidden from";
@@ -66,9 +66,7 @@ class PeopleCollectionPage extends HookConsumerWidget {
data: (people) {
if (search.value != null) {
people = people.where((person) {
return person.name
.toLowerCase()
.contains(search.value!.toLowerCase());
return person.name.toLowerCase().contains(search.value!.toLowerCase());
}).toList();
}
return GridView.builder(
@@ -107,8 +105,7 @@ class PeopleCollectionPage extends HookConsumerWidget {
),
const SizedBox(height: 12),
GestureDetector(
onTap: () =>
showNameEditModel(person.id, person.name),
onTap: () => showNameEditModel(person.id, person.name),
child: person.name.isEmpty
? Text(
'add_a_name'.tr(),
@@ -124,8 +121,7 @@ class PeopleCollectionPage extends HookConsumerWidget {
child: Text(
person.name,
overflow: TextOverflow.ellipsis,
style:
context.textTheme.titleSmall?.copyWith(
style: context.textTheme.titleSmall?.copyWith(
fontWeight: FontWeight.w500,
),
),
@@ -59,8 +59,7 @@ class PlacesCollectionPage extends HookConsumerWidget {
height: 200,
width: context.width,
child: MapThumbnail(
onTap: (_, __) => context
.pushRoute(MapRoute(initialLocation: currentLocation)),
onTap: (_, __) => context.pushRoute(MapRoute(initialLocation: currentLocation)),
zoom: 8,
centre: currentLocation ??
const LatLng(
@@ -68,8 +67,7 @@ class PlacesCollectionPage extends HookConsumerWidget {
-157.91959,
),
showAttribution: false,
themeMode:
context.isDarkTheme ? ThemeMode.dark : ThemeMode.light,
themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light,
),
),
),
@@ -77,9 +75,7 @@ class PlacesCollectionPage extends HookConsumerWidget {
data: (places) {
if (search.value != null) {
places = places.where((place) {
return place.label
.toLowerCase()
.contains(search.value!.toLowerCase());
return place.label.toLowerCase().contains(search.value!.toLowerCase());
}).toList();
}
return ListView.builder(
@@ -110,8 +106,7 @@ class PlaceTile extends StatelessWidget {
@override
Widget build(BuildContext context) {
final thumbnailUrl =
'${Store.get(StoreKey.serverEndpoint)}/assets/$id/thumbnail';
final thumbnailUrl = '${Store.get(StoreKey.serverEndpoint)}/assets/$id/thumbnail';
void navigateToPlace() {
context.pushRoute(
@@ -152,8 +147,7 @@ class PlaceTile extends StatelessWidget {
fit: BoxFit.cover,
imageUrl: thumbnailUrl,
httpHeaders: ApiService.getRequestHeaders(),
errorWidget: (context, url, error) =>
const Icon(Icons.image_not_supported_outlined),
errorWidget: (context, url, error) => const Icon(Icons.image_not_supported_outlined),
),
),
);
@@ -58,8 +58,7 @@ class SharedLinkPage extends HookConsumerWidget {
child: Icon(
Icons.link_off,
size: 100,
color:
context.themeData.iconTheme.color?.withValues(alpha: 0.5),
color: context.themeData.iconTheme.color?.withValues(alpha: 0.5),
),
),
),
@@ -86,8 +85,7 @@ class SharedLinkPage extends HookConsumerWidget {
if (constraints.maxWidth > 600) {
// Two column
return GridView.builder(
gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount(
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
mainAxisExtent: 180,
),
@@ -121,8 +119,7 @@ class SharedLinkPage extends HookConsumerWidget {
body: SafeArea(
child: sharedLinks.widgetWhen(
onError: (error, stackTrace) => buildNoShares(),
onData: (links) =>
links.isNotEmpty ? buildSharesList(links) : buildNoShares(),
onData: (links) => links.isNotEmpty ? buildSharesList(links) : buildNoShares(),
),
),
);
@@ -31,11 +31,9 @@ class SharedLinkEditPage extends HookConsumerWidget {
const padding = 20.0;
final themeData = context.themeData;
final colorScheme = context.colorScheme;
final descriptionController =
useTextEditingController(text: existingLink?.description ?? "");
final descriptionController = useTextEditingController(text: existingLink?.description ?? "");
final descriptionFocusNode = useFocusNode();
final passwordController =
useTextEditingController(text: existingLink?.password ?? "");
final passwordController = useTextEditingController(text: existingLink?.password ?? "");
final showMetadata = useState(existingLink?.showMetadata ?? true);
final allowDownload = useState(existingLink?.allowDownload ?? true);
final allowUpload = useState(existingLink?.allowUpload ?? false);
@@ -155,15 +153,12 @@ class SharedLinkEditPage extends HookConsumerWidget {
Widget buildShowMetaButton() {
return SwitchListTile.adaptive(
value: showMetadata.value,
onChanged: newShareLink.value.isEmpty
? (value) => showMetadata.value = value
: null,
onChanged: newShareLink.value.isEmpty ? (value) => showMetadata.value = value : null,
activeColor: colorScheme.primary,
dense: true,
title: Text(
"show_metadata",
style: themeData.textTheme.labelLarge
?.copyWith(fontWeight: FontWeight.bold),
style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold),
).tr(),
);
}
@@ -171,15 +166,12 @@ class SharedLinkEditPage extends HookConsumerWidget {
Widget buildAllowDownloadButton() {
return SwitchListTile.adaptive(
value: allowDownload.value,
onChanged: newShareLink.value.isEmpty
? (value) => allowDownload.value = value
: null,
onChanged: newShareLink.value.isEmpty ? (value) => allowDownload.value = value : null,
activeColor: colorScheme.primary,
dense: true,
title: Text(
"allow_public_user_to_download",
style: themeData.textTheme.labelLarge
?.copyWith(fontWeight: FontWeight.bold),
style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold),
).tr(),
);
}
@@ -187,15 +179,12 @@ class SharedLinkEditPage extends HookConsumerWidget {
Widget buildAllowUploadButton() {
return SwitchListTile.adaptive(
value: allowUpload.value,
onChanged: newShareLink.value.isEmpty
? (value) => allowUpload.value = value
: null,
onChanged: newShareLink.value.isEmpty ? (value) => allowUpload.value = value : null,
activeColor: colorScheme.primary,
dense: true,
title: Text(
"allow_public_user_to_upload",
style: themeData.textTheme.labelLarge
?.copyWith(fontWeight: FontWeight.bold),
style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold),
).tr(),
);
}
@@ -203,15 +192,12 @@ class SharedLinkEditPage extends HookConsumerWidget {
Widget buildEditExpiryButton() {
return SwitchListTile.adaptive(
value: editExpiry.value,
onChanged: newShareLink.value.isEmpty
? (value) => editExpiry.value = value
: null,
onChanged: newShareLink.value.isEmpty ? (value) => editExpiry.value = value : null,
activeColor: colorScheme.primary,
dense: true,
title: Text(
"change_expiration_time",
style: themeData.textTheme.labelLarge
?.copyWith(fontWeight: FontWeight.bold),
style: themeData.textTheme.labelLarge?.copyWith(fontWeight: FontWeight.bold),
).tr(),
);
}
@@ -229,8 +215,7 @@ class SharedLinkEditPage extends HookConsumerWidget {
enableFilter: false,
width: context.width - 40,
initialSelection: expiryAfter.value,
enabled: newShareLink.value.isEmpty &&
(existingLink == null || editExpiry.value),
enabled: newShareLink.value.isEmpty && (existingLink == null || editExpiry.value),
onSelected: (value) {
expiryAfter.value = value!;
},
@@ -241,8 +226,7 @@ class SharedLinkEditPage extends HookConsumerWidget {
),
DropdownMenuEntry(
value: 30,
label: "shared_link_edit_expire_after_option_minutes"
.tr(namedArgs: {'count': "30"}),
label: "shared_link_edit_expire_after_option_minutes".tr(namedArgs: {'count': "30"}),
),
DropdownMenuEntry(
value: 60,
@@ -250,8 +234,7 @@ class SharedLinkEditPage extends HookConsumerWidget {
),
DropdownMenuEntry(
value: 60 * 6,
label: "shared_link_edit_expire_after_option_hours"
.tr(namedArgs: {'count': "6"}),
label: "shared_link_edit_expire_after_option_hours".tr(namedArgs: {'count': "6"}),
),
DropdownMenuEntry(
value: 60 * 24,
@@ -259,23 +242,19 @@ class SharedLinkEditPage extends HookConsumerWidget {
),
DropdownMenuEntry(
value: 60 * 24 * 7,
label: "shared_link_edit_expire_after_option_days"
.tr(namedArgs: {'count': "7"}),
label: "shared_link_edit_expire_after_option_days".tr(namedArgs: {'count': "7"}),
),
DropdownMenuEntry(
value: 60 * 24 * 30,
label: "shared_link_edit_expire_after_option_days"
.tr(namedArgs: {'count': "30"}),
label: "shared_link_edit_expire_after_option_days".tr(namedArgs: {'count': "30"}),
),
DropdownMenuEntry(
value: 60 * 24 * 30 * 3,
label: "shared_link_edit_expire_after_option_months"
.tr(namedArgs: {'count': "3"}),
label: "shared_link_edit_expire_after_option_months".tr(namedArgs: {'count': "3"}),
),
DropdownMenuEntry(
value: 60 * 24 * 30 * 12,
label: "shared_link_edit_expire_after_option_year"
.tr(namedArgs: {'count': "1"}),
label: "shared_link_edit_expire_after_option_year".tr(namedArgs: {'count': "1"}),
),
],
);
@@ -346,27 +325,21 @@ class SharedLinkEditPage extends HookConsumerWidget {
}
Future<void> handleNewLink() async {
final newLink =
await ref.read(sharedLinkServiceProvider).createSharedLink(
albumId: albumId,
assetIds: assetsList,
showMeta: showMetadata.value,
allowDownload: allowDownload.value,
allowUpload: allowUpload.value,
description: descriptionController.text.isEmpty
? null
: descriptionController.text,
password: passwordController.text.isEmpty
? null
: passwordController.text,
expiresAt: expiryAfter.value == 0 ? null : calculateExpiry(),
);
final newLink = await ref.read(sharedLinkServiceProvider).createSharedLink(
albumId: albumId,
assetIds: assetsList,
showMeta: showMetadata.value,
allowDownload: allowDownload.value,
allowUpload: allowUpload.value,
description: descriptionController.text.isEmpty ? null : descriptionController.text,
password: passwordController.text.isEmpty ? null : passwordController.text,
expiresAt: expiryAfter.value == 0 ? null : calculateExpiry(),
);
ref.invalidate(sharedLinksStateProvider);
final externalDomain = ref.read(
serverInfoProvider.select((s) => s.serverConfig.externalDomain),
);
var serverUrl =
externalDomain.isNotEmpty ? externalDomain : getServerUrl();
var serverUrl = externalDomain.isNotEmpty ? externalDomain : getServerUrl();
if (serverUrl != null && !serverUrl.endsWith('/')) {
serverUrl += '/';
}
@@ -472,8 +445,7 @@ class SharedLinkEditPage extends HookConsumerWidget {
child: buildAllowDownloadButton(),
),
Padding(
padding:
const EdgeInsets.only(left: padding, right: 20, bottom: 20),
padding: const EdgeInsets.only(left: padding, right: 20, bottom: 20),
child: buildAllowUploadButton(),
),
if (existingLink != null)
@@ -502,12 +474,9 @@ class SharedLinkEditPage extends HookConsumerWidget {
bottom: padding,
),
child: ElevatedButton(
onPressed:
existingLink != null ? handleEditLink : handleNewLink,
onPressed: existingLink != null ? handleEditLink : handleNewLink,
child: Text(
existingLink != null
? "shared_link_edit_submit_button"
: "create_link",
existingLink != null ? "shared_link_edit_submit_button" : "create_link",
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,
+10 -24
View File
@@ -24,8 +24,7 @@ class TrashPage extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final trashRenderList = ref.watch(trashTimelineProvider);
final trashDays =
ref.watch(serverInfoProvider.select((v) => v.serverConfig.trashDays));
final trashDays = ref.watch(serverInfoProvider.select((v) => v.serverConfig.trashDays));
final selectionEnabledHook = useState(false);
final selection = useState(<Asset>{});
final processing = useProcessingOverlay();
@@ -68,16 +67,13 @@ class TrashPage extends HookConsumerWidget {
processing.value = true;
try {
if (selection.value.isNotEmpty) {
final isRemoved = await ref
.read(assetProvider.notifier)
.deleteAssets(selection.value, force: true);
final isRemoved = await ref.read(assetProvider.notifier).deleteAssets(selection.value, force: true);
if (isRemoved) {
if (context.mounted) {
ImmichToast.show(
context: context,
msg: 'assets_deleted_permanently'
.tr(namedArgs: {'count': "${selection.value.length}"}),
msg: 'assets_deleted_permanently'.tr(namedArgs: {'count': "${selection.value.length}"}),
gravity: ToastGravity.BOTTOM,
);
}
@@ -110,15 +106,12 @@ class TrashPage extends HookConsumerWidget {
processing.value = true;
try {
if (selection.value.isNotEmpty) {
final result = await ref
.read(trashProvider.notifier)
.restoreAssets(selection.value);
final result = await ref.read(trashProvider.notifier).restoreAssets(selection.value);
if (result && context.mounted) {
ImmichToast.show(
context: context,
msg: 'assets_restored_successfully'
.tr(namedArgs: {'count': "${selection.value.length}"}),
msg: 'assets_restored_successfully'.tr(namedArgs: {'count': "${selection.value.length}"}),
gravity: ToastGravity.BOTTOM,
);
}
@@ -131,9 +124,7 @@ class TrashPage extends HookConsumerWidget {
String getAppBarTitle(String count) {
if (selectionEnabledHook.value) {
return selection.value.isNotEmpty
? "${selection.value.length}"
: "trash_page_select_assets_btn".tr();
return selection.value.isNotEmpty ? "${selection.value.length}" : "trash_page_select_assets_btn".tr();
}
return 'trash_page_title'.tr(namedArgs: {'count': count});
}
@@ -147,9 +138,8 @@ class TrashPage extends HookConsumerWidget {
selectionEnabledHook.value = false;
selection.value = {};
},
icon: !selectionEnabledHook.value
? const Icon(Icons.arrow_back_ios_rounded)
: const Icon(Icons.close_rounded),
icon:
!selectionEnabledHook.value ? const Icon(Icons.arrow_back_ios_rounded) : const Icon(Icons.close_rounded),
),
centerTitle: !selectionEnabledHook.value,
automaticallyImplyLeading: false,
@@ -192,9 +182,7 @@ class TrashPage extends HookConsumerWidget {
color: Colors.red[400],
),
label: Text(
selection.value.isEmpty
? 'trash_page_delete_all'.tr()
: 'delete'.tr(),
selection.value.isEmpty ? 'trash_page_delete_all'.tr() : 'delete'.tr(),
style: TextStyle(
fontSize: 14,
color: Colors.red[400],
@@ -212,9 +200,7 @@ class TrashPage extends HookConsumerWidget {
Icons.history_rounded,
),
label: Text(
selection.value.isEmpty
? 'trash_page_restore_all'.tr()
: 'restore'.tr(),
selection.value.isEmpty ? 'trash_page_restore_all'.tr() : 'restore'.tr(),
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,