@@ -6,20 +6,22 @@ import 'dart:convert';
66import 'group.dart' ;
77import 'node.dart' ;
88import '../../template/class/tile.dart' ;
9+ import '../../widgets/nodes/image.dart' ;
10+ import '../../widgets/nodes/video.dart' ;
11+ import '../../widgets/nodes/text.dart' ;
912import '../../template/functions.dart' ;
13+ import '../../widgets/nodes/pdf.dart' ;
1014import '../../pages/nodes/blobs.dart' ;
1115import '../../layers/nodes/blob.dart' ;
1216import '../../sheets/node/blobs.dart' ;
1317import '../transfers/transfer.dart' ;
1418import '../../template/data.dart' ;
15- import '../../sheets/image.dart' ;
16- import '../../sheets/text.dart' ;
19+ import '../storage/storage.dart' ;
1720import '../../functions.dart' ;
18- import '../endpoint.dart' ;
1921import '../../data.dart' ;
2022
2123class BlobNode extends Node {
22- Uint8List data = Uint8List (0 );
24+ Uint8List _data = Uint8List (0 );
2325 final textController = TextEditingController ();
2426
2527 BlobNode ({
@@ -30,14 +32,21 @@ class BlobNode extends Node {
3032 });
3133
3234 String get textData {
35+ if (blobType == BlobType .image) return 'IMAGE' ;
3336 try {
3437 return utf8.decode (data);
3538 } catch (e) {
36- showSnack ('$e ' , false );
3739 return 'ERROR' ;
3840 }
3941 }
4042
43+ Uint8List get data => _data;
44+ set data (Uint8List u) {
45+ _data = u;
46+ textController.text = textData;
47+ notify ();
48+ }
49+
4150 String get extension => extensionFromPath (path);
4251 set textData (String s) => data = utf8.encode (s);
4352
@@ -65,20 +74,16 @@ class BlobNode extends Node {
6574 }
6675 }, onHold: () => BlobNodeLayer (node: this ).show ());
6776
68- IconData get icon => {
69- BlobType .text: Icons .list_alt_rounded,
70- BlobType .image: Icons .crop_original_rounded,
71- }[blobType]! ;
77+ IconData get icon =>
78+ {
79+ BlobType .pdf: Icons .picture_as_pdf_rounded,
80+ BlobType .image: Icons .crop_original_rounded,
81+ BlobType .video: Icons .movie_rounded,
82+ }[blobType] ??
83+ Icons .list_alt_rounded;
7284
7385 @override
74- Future <void > refresh () async {
75- loaded = false ;
76- notifyListeners ();
77- data = await EndPoint ().loadBlobNode (this );
78- textController.text = textData;
79- loaded = true ;
80- notifyListeners ();
81- }
86+ Future <void > refresh () => Storage ().loadBlobNode (this );
8287
8388 void openLayer () => showModalBottomSheet (
8489 barrierLabel: 'Barrier' ,
@@ -91,16 +96,16 @@ class BlobNode extends Node {
9196 ),
9297 );
9398
94- bool get hasData => data.isNotEmpty;
99+ bool get hasData => loaded || data.isNotEmpty;
95100 BlobType get blobType => BlobType .fromExtension (extension );
96101
97- Widget get subWidget {
98- if ( ! hasData) return Container ();
99- return {
100- BlobType .image : ImageNodeSheet (blobNode: this ),
101- BlobType .text : TextNodeSheet (blobNode: this ),
102- }[blobType]! ;
103- }
102+ Widget get subWidget =>
103+ {
104+ BlobType .image : ImageNodeWidget (blobNode : this ),
105+ BlobType .video : VideoNodeWidget (blobNode: this ),
106+ BlobType .pdf : PDFNodeWidget (blobNode: this ),
107+ }[blobType] ??
108+ TextNodeWidget (blobNode : this );
104109
105110 Future <void > saveChanges () async {
106111 if (blobType == BlobType .text) {
@@ -112,7 +117,7 @@ class BlobNode extends Node {
112117 Transfer copyTo (String dest) => Transfer (
113118 'Copying $name to $dest ' ,
114119 future: () async {
115- await EndPoint ().copyBlobNode (this , dest);
120+ await Storage ().copyBlobNode (this , dest);
116121 await parent? .refresh ();
117122 }.call (),
118123 );
@@ -129,17 +134,17 @@ class BlobNode extends Node {
129134 Transfer get upload => Transfer (
130135 'Uploading $name ' ,
131136 future: () async {
132- await EndPoint ().uploadNode (this );
137+ await Storage ().uploadNode (this );
133138 await parent! .refresh ();
134139 }.call (),
135140 );
136141
137142 @override
138143 Transfer get forceRemove =>
139- Transfer ('Removing $name ' , future: EndPoint ().removeBlobNode (this ));
144+ Transfer ('Removing $name ' , future: Storage ().removeBlobNode (this ));
140145
141146 Transfer get update =>
142- Transfer ('Update $path ' , future: EndPoint ().updateBlobNode (this ));
147+ Transfer ('Update $path ' , future: Storage ().updateBlobNode (this ));
143148
144149 Transfer get download => Transfer (
145150 'Downloading $name ' ,
0 commit comments