Add functionality to edit sheets with save and restore

This commit is contained in:
2025-11-15 22:26:33 +01:00
parent 31ecd3c820
commit 3edc3229e9
5 changed files with 202 additions and 3 deletions

View File

@@ -2,13 +2,15 @@ import 'dart:async';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:sheetless/edit_bottom_sheet.dart';
import 'package:sheetless/storage_helper.dart';
import 'package:sheetless/upload_queue.dart';
class Sheet {
final String uuid;
final String name;
final String composerUuid;
final String composerName;
String name;
String composerUuid;
String composerName;
Sheet({
required this.uuid,
@@ -92,6 +94,40 @@ class _SheetsWidgetState extends State<SheetsWidget> {
_searchController.clear();
}
void _openEditSheet(BuildContext context, Sheet sheet) {
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (_) => EditItemBottomSheet(
sheet: sheet,
onSheetEdited: (String newName, String newComposer) {
if (newName != sheet.name) {
storageHelper.writeChange(
Change(
type: ChangeType.sheetNameChange,
sheetUuid: sheet.uuid,
value: newName,
),
);
}
if (newComposer != sheet.composerName) {
storageHelper.writeChange(
Change(
type: ChangeType.composerNameChange,
sheetUuid: sheet.uuid,
value: newComposer,
),
);
}
setState(() {
sheet.name = newName;
sheet.composerName = newComposer;
});
},
),
);
}
@override
Widget build(BuildContext context) {
return Column(
@@ -134,6 +170,7 @@ class _SheetsWidgetState extends State<SheetsWidget> {
widget.sheets.remove(sheet);
widget.sheets.insert(0, sheet);
}),
onLongPress: () => _openEditSheet(context, sheet),
);
},
),