Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,13 @@ $ rover graph introspect https://router-6ouzjmdzha-an.a.run.app -o lib/schema.gr
```

https://www.apollographql.com/docs/rover/commands/supergraphs

## WidgetBook

以下のコマンドで起動する。
`macos`の部分は使用しているOSに変更する必要がある。
```
$ flutter run -t lib/widgetbook.dart -d macos
```

コンポーネントを追加した時などに、コード生成が必要になることがある。
53 changes: 53 additions & 0 deletions lib/widgetbook.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// widgetbook.dart

import 'package:aipictors/config.dart';
import 'package:aipictors/handlers/background_message_handler.dart';
import 'package:aipictors/repositories/config_repository.dart';
import 'package:aipictors/repositories/hive_repository.dart';
import 'package:aipictors/repositories/survey_repository.dart';
import 'package:aipictors/repositories/translation_repository.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:firebase_in_app_messaging/firebase_in_app_messaging.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:firebase_remote_config/firebase_remote_config.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:widgetbook/widgetbook.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook;

// Import the generated directories variable
import 'package:aipictors/widgetbook.directories.g.dart';

@widgetbook.App()
Future<void> main() async {
// runAppより前にFlutterEngineを使用する
WidgetsFlutterBinding.ensureInitialized();

// Firebaseを初期化する
// await Firebase.initializeApp();
runApp(const ProviderScope(child: WidgetbookApp()));
}

@widgetbook.App()
class WidgetbookApp extends StatelessWidget {
const WidgetbookApp({super.key});

@override
Widget build(BuildContext context) {
// 参考: https://docs.widgetbook.io/getting-started/setup
// https://zenn.dev/natoring/articles/3d6638ab499117
return Widgetbook.material(
directories: directories,
addons: [
DeviceFrameAddon(devices: Devices.ios.all),
InspectorAddon(),
GridAddon(100),
AlignmentAddon(),
ZoomAddon(),
],
);
}
}
41 changes: 41 additions & 0 deletions lib/widgetbook.directories.g.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// coverage:ignore-file
// ignore_for_file: type=lint
// ignore_for_file: unused_import, prefer_relative_imports, directives_ordering

// GENERATED CODE - DO NOT MODIFY BY HAND

// **************************************************************************
// AppGenerator
// **************************************************************************

// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:aipictors/widgets/button/feed_like_button.dart' as _i2;
import 'package:aipictors/widgets/button/follow_button.dart' as _i3;
import 'package:widgetbook/widgetbook.dart' as _i1;

final directories = <_i1.WidgetbookNode>[
_i1.WidgetbookFolder(
name: 'widgets',
children: [
_i1.WidgetbookFolder(
name: 'button',
children: [
_i1.WidgetbookLeafComponent(
name: 'FeedLikeButton',
useCase: _i1.WidgetbookUseCase(
name: 'FeedLikeButton',
builder: _i2.feedLikeButton,
),
),
_i1.WidgetbookLeafComponent(
name: 'FollowButton',
useCase: _i1.WidgetbookUseCase(
name: 'FollowButton',
builder: _i3.followButton,
),
),
],
)
],
)
];
9 changes: 9 additions & 0 deletions lib/widgets/button/feed_like_button.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:like_button/like_button.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook;

@widgetbook.UseCase(
name: 'FeedLikeButton',
type: FeedLikeButton,
)
FeedLikeButton feedLikeButton(BuildContext context) {
return FeedLikeButton(count: 0, isActive: true, onTap: () {});
}

class FeedLikeButton extends HookConsumerWidget {
const FeedLikeButton({
Expand Down
9 changes: 9 additions & 0 deletions lib/widgets/button/follow_button.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@ import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:go_router/go_router.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:widgetbook_annotation/widgetbook_annotation.dart' as widgetbook;

@widgetbook.UseCase(
name: 'FollowButton',
type: FollowButton,
)
FollowButton followButton(BuildContext context) {
return FollowButton(isActive: true, onPressed: () async {});
}

class FollowButton extends HookConsumerWidget {
const FollowButton({
Expand Down
2 changes: 1 addition & 1 deletion macos/Podfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
platform :osx, '10.14'
platform :osx, '10.15'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
Expand Down
Loading