Skip to content

Commit

Permalink
feat: add draft implementation of chatPartnerImageUrlProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
kosukesaigusa committed Jul 20, 2023
1 parent a4e1e5e commit a9a3327
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
14 changes: 14 additions & 0 deletions packages/mottai_flutter_app/lib/chat/ui/chat_room.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,22 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import '../../auth/ui/auth_dependent_builder.dart';
import '../../color.dart';
import '../../user/user_mode.dart';
import '../../user/worker.dart';
import '../chat_room.dart';

/// チャット相手の画像 URL を取得する [Provider].
final chatPartnerImageUrlProvider =
Provider.family.autoDispose<String, ReadChatRoom>((ref, readChatRoom) {
final userMode = ref.watch(userModeStateProvider);
switch (userMode) {
case UserMode.worker:
// TODO: 後でムヒョンが担当する
throw UnimplementedError();
case UserMode.host:
return ref.watch(workerImageUrlProvider(readChatRoom.workerId));
}
});

/// このファイルの複数箇所で指定している水平方向の Padding。
const double _horizontalPadding = 8;

Expand Down
18 changes: 18 additions & 0 deletions packages/mottai_flutter_app/lib/user/worker.dart
Original file line number Diff line number Diff line change
@@ -1 +1,19 @@
import 'package:firebase_common/firebase_common.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

import '../firestore_repository.dart';

/// 指定した [Worker] ドキュメントを購読する [StreamProvider].
final workerStreamProvider =
StreamProvider.family.autoDispose<ReadWorker?, String>(
(ref, workerId) =>
ref.watch(workerRepositoryProvider).subscribeWorker(workerId: workerId),
);

/// 指定した [Worker] の画像 URL を返す [Provider].
/// 画像が存在しない場合や読み込み中・エラーの場合でも空文字を返す。
final workerImageUrlProvider =
Provider.family.autoDispose<String, String>((ref, workerId) {
final worker = ref.watch(workerStreamProvider(workerId)).valueOrNull;
return worker?.imageUrl ?? '';
});

0 comments on commit a9a3327

Please sign in to comment.