mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-26 06:08:40 +01:00
Two entries in SupportViewModel's link list displayed one destination but opened another. SwapTrade pointed at mailto:support@exolix.com, so a user with a SwapTrade trade problem emailed Exolix — who cannot help, and who absorbed another provider's support traffic. The entry was added as Quantex with Exolix's mailto already copy-pasted in from the entry above it; the Quantex -> SwapTrade rename updated the title, icon and linkTitle but carried the wrong link forward. Point it at https://help.swaptrade.io/contact/, which matches what docs.cakewallet.com/support/swap lists for SwapTrade. Live chat is the only contact method that help center publishes — there is no SwapTrade support email — so the mailto form is not an option. Using a path below the displayed host follows the existing SideShift entry in this file. Telegram had the inverse problem: linkTitle read t.me/cakewallet while the link went to the announcements channel. Here the link was correct — t.me/cakewallet is a group that self-describes as the inactive Cake Wallet Community and directs visitors to the announcements channel — so the stale label was updated to match the destination rather than the reverse. The other 15 entries were audited and are consistent.
141 lines
5.6 KiB
Dart
141 lines
5.6 KiB
Dart
import 'package:cake_wallet/.secrets.g.dart' as secrets;
|
|
import 'package:cake_wallet/generated/i18n.dart';
|
|
import 'package:cake_wallet/store/app_store.dart';
|
|
import 'package:cake_wallet/view_model/settings/link_list_item.dart';
|
|
import 'package:cake_wallet/view_model/settings/settings_list_item.dart';
|
|
import 'package:cake_wallet/wallet_type_utils.dart';
|
|
import 'package:mobx/mobx.dart';
|
|
|
|
part 'support_view_model.g.dart';
|
|
|
|
class SupportViewModel = SupportViewModelBase with _$SupportViewModel;
|
|
|
|
abstract class SupportViewModelBase with Store {
|
|
final AppStore _appStore;
|
|
|
|
SupportViewModelBase(this._appStore)
|
|
: items = [
|
|
LinkListItem(
|
|
title: 'Email',
|
|
icon: 'assets/images/support_icon.png',
|
|
linkTitle: 'support@cakewallet.com',
|
|
link: 'mailto:support@cakewallet.com'),
|
|
LinkListItem(
|
|
title: 'Website',
|
|
icon: 'assets/images/global.png',
|
|
linkTitle: 'cakewallet.com',
|
|
link: 'https://cakewallet.com'),
|
|
LinkListItem(
|
|
title: 'Forum',
|
|
icon: 'assets/images/discourse.png',
|
|
linkTitle: 'forum.cakewallet.com',
|
|
link: 'https://forum.cakewallet.com'),
|
|
LinkListItem(
|
|
title: 'GitHub',
|
|
icon: 'assets/images/github.png',
|
|
hasIconColor: true,
|
|
linkTitle: S.current.apk_update,
|
|
link: 'https://github.com/cake-tech/cake_wallet/releases'),
|
|
LinkListItem(
|
|
title: 'Discord',
|
|
icon: 'assets/images/discord.png',
|
|
linkTitle: 'discord.gg/2vqYJdXG2H',
|
|
link: 'https://discord.gg/2vqYJdXG2H'),
|
|
LinkListItem(
|
|
title: 'Telegram',
|
|
icon: 'assets/images/Telegram.png',
|
|
linkTitle: 't.me/cakewalletannouncements',
|
|
link: 'https://t.me/cakewalletannouncements'),
|
|
LinkListItem(
|
|
title: 'Telegram Support Bot',
|
|
icon: 'assets/images/Telegram.png',
|
|
linkTitle: '@cakewallet_bot',
|
|
link: 'https://t.me/cakewallet_bot'),
|
|
LinkListItem(
|
|
title: 'ChangeNow',
|
|
icon: 'assets/images/change_now.png',
|
|
linkTitle: 'support@changenow.io',
|
|
link: 'mailto:support@changenow.io'),
|
|
// LinkListItem(
|
|
// title: 'SideShift',
|
|
// icon: 'assets/images/sideshift.png',
|
|
// linkTitle: 'help.sideshift.ai',
|
|
// link: 'https://help.sideshift.ai/en/'),
|
|
LinkListItem(
|
|
title: 'SimpleSwap',
|
|
icon: 'assets/images/simpleSwap.png',
|
|
linkTitle: 'support@simpleswap.io',
|
|
link: 'mailto:support@simpleswap.io'),
|
|
LinkListItem(
|
|
title: 'Exolix',
|
|
icon: 'assets/images/exolix.png',
|
|
linkTitle: 'support@exolix.com',
|
|
link: 'mailto:support@exolix.com'),
|
|
LinkListItem(
|
|
title: 'SwapTrade',
|
|
icon: 'assets/images/swap_trade.png',
|
|
linkTitle: 'help.swaptrade.io',
|
|
link: 'https://help.swaptrade.io/contact/'),
|
|
LinkListItem(
|
|
title: 'Trocador',
|
|
icon: 'assets/images/trocador.png',
|
|
linkTitle: 'mail@trocador.app',
|
|
link: 'mailto:mail@trocador.app'),
|
|
LinkListItem(
|
|
title: 'Onramper',
|
|
icon: 'assets/images/onramper_dark.png',
|
|
lightIcon: 'assets/images/onramper_light.png',
|
|
linkTitle: 'View exchanges',
|
|
link: 'https://docs.cakewallet.com/support/buy/#onramper'),
|
|
LinkListItem(
|
|
title: 'DFX',
|
|
icon: 'assets/images/dfx_dark.png',
|
|
lightIcon: 'assets/images/dfx_light.png',
|
|
linkTitle: 'support@dfx.swiss',
|
|
link: 'mailto:support@dfx.swiss'),
|
|
if (!isMoneroOnly) ...[
|
|
LinkListItem(
|
|
title: 'MoonPay',
|
|
icon: 'assets/images/moonpay.png',
|
|
linkTitle: S.current.submit_request,
|
|
link: 'https://support.moonpay.com/hc/en-gb/requests/new'),
|
|
LinkListItem(
|
|
title: 'Robinhood Connect',
|
|
icon: 'assets/images/robinhood_dark.png',
|
|
lightIcon: 'assets/images/robinhood_light.png',
|
|
linkTitle: S.current.submit_request,
|
|
link: 'https://robinhood.com/contact')
|
|
],
|
|
LinkListItem(
|
|
title: 'Kryptonim',
|
|
icon: 'assets/images/kryptonim_dark.png',
|
|
lightIcon: 'assets/images/kryptonim_light.png',
|
|
linkTitle: 'contact@support.kryptonim.com',
|
|
link: 'mailto:contact@support.kryptonim.com'),
|
|
];
|
|
|
|
final docsUrl = 'https://docs.cakewallet.com';
|
|
|
|
String fetchUrl({String locale = "en", String authToken = ""}) {
|
|
var supportUrl =
|
|
"https://app.chatwoot.com/widget?website_token=${secrets.chatwootWebsiteToken}&locale=${locale}";
|
|
|
|
if (authToken.isNotEmpty) supportUrl += "&cw_conversation=$authToken";
|
|
|
|
return supportUrl;
|
|
}
|
|
|
|
String get appVersion =>
|
|
"${isMoneroOnly ? "Monero.com" : "Cake Wallet"} - ${_appStore.settingsStore.appVersion}";
|
|
|
|
String get fiatApiMode => _appStore.settingsStore.fiatApiMode.title;
|
|
|
|
String get walletType => _appStore.wallet?.type.name ?? 'Unknown';
|
|
|
|
String get walletSyncState => _appStore.wallet?.syncStatus.toString() ?? 'Unknown';
|
|
|
|
String get builtInTorState => _appStore.settingsStore.currentBuiltinTor ? 'Enabled' : 'Disabled';
|
|
|
|
List<SettingsListItem> items;
|
|
}
|