Skip to content

Commit f139ab0

Browse files
committed
starting to develop editor
1 parent 845fc45 commit f139ab0

5 files changed

Lines changed: 60 additions & 1 deletion

File tree

lib/editor/bloc/course.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import 'package:dev_doctor/models/course.dart';
2+
import 'package:dev_doctor/models/part.dart';
3+
4+
class CourseEditorBloc {
5+
final Course course;
6+
final List<CoursePart> parts;
7+
8+
CourseEditorBloc(this.course, {this.parts = const []});
9+
10+
CourseEditorBloc.fromJson(Map<String, dynamic> json)
11+
: course = Course.fromJson(json['course']),
12+
parts = (json['parts'] as List<dynamic>).map((e) => CoursePart.fromJson(e));
13+
}

lib/editor/bloc/server.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import 'package:dev_doctor/models/course.dart';
2+
import 'package:dev_doctor/models/server.dart';
3+
4+
import 'course.dart';
5+
6+
class ServerEditorBloc {
7+
final CoursesServer server;
8+
final List<CourseEditorBloc> courses;
9+
10+
ServerEditorBloc(this.server, {this.courses = const []});
11+
ServerEditorBloc.fromJson(Map<String, dynamic> json)
12+
: server = CoursesServer.fromJson(json['server']),
13+
courses =
14+
(json['courses'] as List<dynamic>).map((e) => CourseEditorBloc.fromJson(e)).toList();
15+
}

lib/editor/create.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import 'package:flutter/material.dart';
2+
3+
class CreateServerPage extends StatefulWidget {
4+
@override
5+
_CreateServerPageState createState() => _CreateServerPageState();
6+
}
7+
8+
class _CreateServerPageState extends State<CreateServerPage> {
9+
@override
10+
Widget build(BuildContext context) {
11+
return Container();
12+
}
13+
}

lib/editor/home.dart

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,34 @@
1+
import 'dart:convert';
2+
3+
import 'package:dev_doctor/editor/bloc/server.dart';
14
import 'package:dev_doctor/widgets/appbar.dart';
25
import 'package:flutter/material.dart';
36
import 'package:easy_localization/easy_localization.dart';
7+
import 'package:hive/hive.dart';
8+
import 'package:hive_flutter/hive_flutter.dart';
49

510
class EditorPage extends StatefulWidget {
611
@override
712
_EditorPageState createState() => _EditorPageState();
813
}
914

1015
class _EditorPageState extends State<EditorPage> {
16+
Box<String> _box = Hive.box<String>('editor');
1117
@override
1218
Widget build(BuildContext context) {
1319
return Scaffold(
1420
appBar: MyAppBar(title: 'editor.title'.tr()),
15-
body: Center(child: Text("coming-soon").tr()));
21+
body: ValueListenableBuilder(
22+
valueListenable: _box.listenable(),
23+
builder: (context, value, child) => Scrollbar(
24+
child: ListView.builder(
25+
itemCount: _box.length,
26+
itemBuilder: (context, index) {
27+
var item = json.decode(_box.getAt(index));
28+
var bloc = ServerEditorBloc.fromJson(item);
29+
return ListTile(title: Text(bloc.server.name));
30+
}))),
31+
floatingActionButton: FloatingActionButton.extended(
32+
onPressed: () {}, icon: Icon(Icons.add_outlined), label: Text("editor.create").tr()));
1633
}
1734
}

lib/main.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ void main() async {
1414
await Hive.initFlutter();
1515
await Hive.openBox('settings');
1616
await Hive.openBox('appearance');
17+
await Hive.openBox<String>('editor');
1718
var _serversBox = await Hive.openBox<String>('servers');
1819
var _collectionsBox = await Hive.openBox<String>('collections');
1920
if (_collectionsBox.isEmpty) await _collectionsBox.add('https://collection.dev-doctor.cf');

0 commit comments

Comments
 (0)