add_friend_prompt_dialog.dart 1.58 KB
import 'package:doublefeel_flutter/app/models/dialog_meta_data.dart';
import 'package:doublefeel_flutter/app/widget/common_dialog_view.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:doublefeel_flutter/l10n/l10n_extensions.dart';

import '../models/add_friend_prompt_type.dart';

class AddFriendPromptDialog extends StatelessWidget {
  const AddFriendPromptDialog({super.key, required this.type});

  final AddFriendPromptType type;

  static DialogMetaData metaDataFor(AddFriendPromptType type) {
    return DialogMetaData(
      iconAsset: null,
      title: _titleFor(type),
      message: _messageFor(type),
      confirmText: l10n.friendsPromptGotIt,
    );
  }

  static String _titleFor(AddFriendPromptType type) {
    switch (type) {
      case AddFriendPromptType.idNotFound:
        return l10n.friendsPromptIdNotFoundTitle;
      case AddFriendPromptType.alreadyFriend:
        return l10n.friendsPromptAlreadyFriendTitle;
      case AddFriendPromptType.selfId:
        return l10n.friendsPromptSelfIdTitle;
    }
  }

  static String _messageFor(AddFriendPromptType type) {
    switch (type) {
      case AddFriendPromptType.idNotFound:
        return l10n.friendsPromptIdNotFoundMessage;
      case AddFriendPromptType.alreadyFriend:
        return l10n.friendsPromptAlreadyFriendMessage;
      case AddFriendPromptType.selfId:
        return l10n.friendsPromptSelfIdMessage;
    }
  }

  @override
  Widget build(BuildContext context) {
    return CommonDialogView(
      dialogMetaData: metaDataFor(type),
      onAction: (_) => Get.back<void>(),
    );
  }
}