Skip to content

Commit 7715fa5

Browse files
committed
Wrap thing details in card
1 parent 14021fa commit 7715fa5

File tree

2 files changed

+58
-42
lines changed

2 files changed

+58
-42
lines changed

apps/librarian/lib/modules/things/details/inventory_details.dart

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
55
import 'package:librarian_app/dashboard/providers/end_drawer_provider.dart';
66
import 'package:librarian_app/modules/things/details/inventory/create_items/create_items_dialog.dart';
77
import 'package:librarian_app/modules/things/details/inventory/item_details_drawer/drawer.dart';
8-
import 'package:librarian_app/widgets/fields/checkbox_field.dart';
9-
import 'package:librarian_app/widgets/input_decoration.dart';
8+
import 'package:librarian_app/modules/things/details/thing_details/thing_details_card.dart';
109
import 'package:librarian_app/core/api/models/updated_image_model.dart';
1110
import 'package:librarian_app/modules/things/details/inventory/item_details_page.dart';
1211
import 'package:librarian_app/modules/things/providers/edited_thing_details_providers.dart';
@@ -37,7 +36,7 @@ class InventoryDetails extends ConsumerWidget {
3736
final details = snapshot.data!;
3837

3938
return Column(
40-
crossAxisAlignment: CrossAxisAlignment.start,
39+
crossAxisAlignment: CrossAxisAlignment.stretch,
4140
children: [
4241
Wrap(
4342
spacing: 16,
@@ -66,45 +65,7 @@ class InventoryDetails extends ConsumerWidget {
6665
}
6766
},
6867
),
69-
Column(
70-
crossAxisAlignment: CrossAxisAlignment.start,
71-
children: [
72-
TextField(
73-
controller: TextEditingController(text: details.name),
74-
decoration: inputDecoration.copyWith(labelText: 'Name'),
75-
onChanged: (value) =>
76-
ref.read(nameProvider.notifier).state = value,
77-
),
78-
const SizedBox(height: 16),
79-
TextField(
80-
controller:
81-
TextEditingController(text: details.spanishName),
82-
decoration:
83-
inputDecoration.copyWith(labelText: 'Name (Spanish)'),
84-
onChanged: (value) =>
85-
ref.read(spanishNameProvider.notifier).state = value,
86-
),
87-
const SizedBox(height: 32),
88-
CheckboxField(
89-
title: 'Hidden',
90-
value: ref.watch(hiddenProvider) ?? details.hidden,
91-
onChanged: (bool? value) {
92-
ref.read(hiddenProvider.notifier).state =
93-
value ?? false;
94-
},
95-
),
96-
const SizedBox(height: 32),
97-
CheckboxField(
98-
title: 'Eye Protection Required',
99-
value: ref.watch(eyeProtectionProvider) ??
100-
details.eyeProtection,
101-
onChanged: (bool? value) {
102-
ref.read(eyeProtectionProvider.notifier).state =
103-
value ?? false;
104-
},
105-
),
106-
],
107-
),
68+
ThingDetailsCard(details: details),
10869
],
10970
),
11071
const SizedBox(height: 32),
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:flutter_riverpod/flutter_riverpod.dart';
3+
import 'package:librarian_app/core/api/models/detailed_thing_model.dart';
4+
import 'package:librarian_app/widgets/details_card/card_body.dart';
5+
import 'package:librarian_app/widgets/details_card/details_card.dart';
6+
import 'package:librarian_app/widgets/fields/checkbox_field.dart';
7+
import 'package:librarian_app/widgets/input_decoration.dart';
8+
9+
import '../../providers/edited_thing_details_providers.dart';
10+
11+
class ThingDetailsCard extends ConsumerWidget {
12+
const ThingDetailsCard({super.key, required this.details});
13+
14+
final DetailedThingModel details;
15+
16+
@override
17+
Widget build(BuildContext context, WidgetRef ref) {
18+
return DetailsCard(
19+
body: CardBody(
20+
child: Column(
21+
crossAxisAlignment: CrossAxisAlignment.start,
22+
children: [
23+
TextField(
24+
controller: TextEditingController(text: details.name),
25+
decoration: inputDecoration.copyWith(labelText: 'Name'),
26+
onChanged: (value) => ref.read(nameProvider.notifier).state = value,
27+
),
28+
const SizedBox(height: 16),
29+
TextField(
30+
controller: TextEditingController(text: details.spanishName),
31+
decoration: inputDecoration.copyWith(labelText: 'Name (Spanish)'),
32+
onChanged: (value) =>
33+
ref.read(spanishNameProvider.notifier).state = value,
34+
),
35+
const SizedBox(height: 32),
36+
CheckboxField(
37+
title: 'Hidden',
38+
value: ref.watch(hiddenProvider) ?? details.hidden,
39+
onChanged: (bool? value) {
40+
ref.read(hiddenProvider.notifier).state = value ?? false;
41+
},
42+
),
43+
const SizedBox(height: 16),
44+
CheckboxField(
45+
title: 'Eye Protection Required',
46+
value: ref.watch(eyeProtectionProvider) ?? details.eyeProtection,
47+
onChanged: (bool? value) {
48+
ref.read(eyeProtectionProvider.notifier).state = value ?? false;
49+
},
50+
),
51+
],
52+
),
53+
));
54+
}
55+
}

0 commit comments

Comments
 (0)