masamune_module_simpleblog 2.0.8
masamune_module_simpleblog: ^2.0.8 copied to clipboard
masamune_module for creating simple blogs.
example/lib/main.dart
// Flutter imports:
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
// Package imports:
import 'package:katana_auth_firebase/katana_auth_firebase.dart';
import 'package:katana_functions_firebase/katana_functions_firebase.dart';
import 'package:katana_model_firestore/katana_model_firestore.dart';
import 'package:katana_storage_firebase/adapter/web/web.dart';
import 'package:masamune/masamune.dart';
import 'package:masamune_logger_firebase/masamune_logger_firebase.dart';
import 'package:masamune_module/masamune_module.dart';
import 'package:masamune_module_simpleblog/masamune_module_simpleblog.dart';
import 'package:masamune_notification_firebase/masamune_notification_firebase.dart';
import 'package:masamune_picker_file/masamune_picker_file.dart';
// Project imports:
import '/firebase_options.dart';
part 'main.theme.dart';
const notificationsTopicName = "multicast";
final notifiation = PushNotification();
final picker = Picker();
@appTheme
final theme = AppThemeData(
primary: Colors.blue,
secondary: Colors.cyan,
onPrimary: Colors.white,
useMaterial3: true,
centerTitleOnAppBar: false,
);
final module = SimpleBlogModuleMasamuneAdapter(
debugShowCheckedModeBanner: false,
notification: SimpleBlogModuleNotificationSettings(
send: (title, text) async {
if (kIsWeb) {
return;
}
return notifiation.send(
title: title, text: text, target: notificationsTopicName);
},
adapter: const PushNotificationMasamuneAdapter(
androidNotificationChannelDescription: "新着投稿があります。",
androidNotificationChannelTitle: "新着投稿",
androidNotificationChannelId: "katana_channel_id",
),
subscribe: () {
return notifiation.subscribe(notificationsTopicName);
},
),
picker: SimpleBlogModulePickerSettings(
adapter: const FilePickerMasamuneAdapter(),
pick: (context, onUpdate) async {
final value = await picker.pickSingle(type: PickerFileType.image);
final path = await value.upload();
onUpdate(path, FormMediaType.image);
},
),
title: "Simple Blog",
authAdapter:
FirebaseAuthAdapter(options: DefaultFirebaseOptions.currentPlatform),
storageAdapter: FirebaseStorageAdapter(
options: DefaultFirebaseOptions.currentPlatform,
),
functionsAdapter: FirebaseFunctionsAdapter(
options: DefaultFirebaseOptions.currentPlatform,
),
modelAdapter: FirestoreModelAdapter(
options: DefaultFirebaseOptions.currentPlatform,
),
additionalMasamuneAdapters: [
FirebaseLoggerMasamuneAdapter(
options: DefaultFirebaseOptions.currentPlatform,
),
],
theme: theme,
);
void main() {
runMasamuneApp(
(adapters) => MasamuneModuleApp(module, adapters),
masamuneAdapters: module.masamuneAdapters,
);
}