// Notification message constants for user-facing notifications // Add new notification messages here as needed export const NOTIFY_PERSON_HIDDEN = { title: "Person Outside Your Network", message: "This person is not visible to you.", }; export const NOTIFY_UNKNOWN_PERSON = { title: "Unidentified Person", message: "Nobody specific was recognized.", }; export const NOTIFY_CONTACT_LOADING_ISSUE = { title: "Contact Loading Issue", message: "Some contact information may be unavailable.", }; export const NOTIFY_FEED_LOADING_ISSUE = { title: "Feed Loading Issue", message: "Some feed data may be unavailable. Pull to refresh.", }; export const NOTIFY_CONFIRMATION_ERROR = { title: "Error", message: "There was a problem submitting the confirmation.", }; export const NOTIFY_DEFAULT_TO_ACTIVE_DID = { title: "Your Info", message: "No user was specified so showing your info.", }; export const NOTIFY_CONTACT_DELETED = { title: "Deleted", message: "Contact has been removed.", }; export const NOTIFY_CONTACT_DELETE_FAILED = { title: "Error", message: "Failed to delete contact.", }; export const NOTIFY_REGISTRATION_SUCCESS = { title: "Registration Success", message: "has been registered.", }; export const NOTIFY_REGISTRATION_ERROR = { title: "Registration Error", message: "Something went wrong during registration.", }; export const NOTIFY_SERVER_ACCESS_ERROR = { title: "Error", message: "There was a problem accessing the server. Try again later.", }; export const NOTIFY_NO_IDENTITY_ERROR = { title: "No Identity", message: "There is no identity to use to check visibility.", }; export const NOTIFY_VISIBILITY_SET = { title: "Visibility Set", message: "visibility updated.", }; export const NOTIFY_VISIBILITY_REFRESHED = { title: "Visibility Refreshed", message: "visibility status updated.", }; // ContactsView.vue specific constants export const NOTIFY_BLANK_INVITE = { title: "Blank Invite", message: "The invite was not included, which can happen when your iOS device cuts off the link. Try pasting the full link into a browser.", }; export const NOTIFY_INVITE_REGISTRATION_SUCCESS = { title: "Registered", message: "You are now registered.", }; export const NOTIFY_INVITE_ERROR = { title: "Error with Invite", message: "Got an error sending the invite.", }; export const NOTIFY_ONBOARDING_CONFIRM = { title: "They're Added To Your List", message: "Would you like to go to the main page now?", }; export const NOTIFY_REGISTER_NOT_AVAILABLE = { title: "Not Registered", message: "You must get registered before you can create invites.", }; export const NOTIFY_REGISTER_PROCESSING = { title: "Processing", message: "Sent...", }; export const NOTIFY_REGISTER_PERSON_SUCCESS = { title: "Registration Success", message: "has been registered.", }; export const NOTIFY_REGISTER_PERSON_ERROR = { title: "Registration Error", message: "Something went wrong during registration.", }; export const NOTIFY_VISIBILITY_ERROR = { title: "Error Setting Visibility", message: "Could not set visibility on the server.", }; export const NOTIFY_UNCONFIRMED_HOURS = { title: "Unconfirmed Hours", message: "Would you like to confirm some of those hours?", }; // Dynamic message template for unconfirmed hours (used in ContactsView.vue) export const NOTIFY_UNCONFIRMED_HOURS_DYNAMIC = { title: "Unconfirmed Hours", // Template: "There {is/are} {count} unconfirmed {hour/hours} from them. Would you like to confirm some of those hours?" getMessage: (count: number): string => { const isAre = count === 1 ? "is" : "are"; const hours = count === 1 ? "hour" : "hours"; return `There ${isAre} ${count} unconfirmed ${hours} from them. Would you like to confirm some of those hours?`; }, }; // Complex modal constants (for raw $notify calls with advanced features) // MembersList.vue complex modals export const NOTIFY_ADD_CONTACT_FIRST = { title: "Add as Contact First?", text: "This person is not in your contacts. Would you like to add them as a contact first?", yesText: "Add as Contact", noText: "Skip Adding Contact", }; export const NOTIFY_CONTINUE_WITHOUT_ADDING = { title: "Continue Without Adding?", text: "Are you sure you want to proceed with admission? If they are not a contact, you will not know their name after this meeting.", yesText: "Continue", }; // ContactsView.vue complex modals export const NOTIFY_REGISTER_CONTACT = { title: "Register", text: "Do you want to register them?", }; export const NOTIFY_ONBOARDING_MEETING = { title: "Onboarding Meeting", text: "Would you like to start a new meeting?", yesText: "Start New Meeting", noText: "Join Existing Meeting", }; // ProjectViewView.vue complex modals export const NOTIFY_CONFIRM_CLAIM = { title: "Confirm", text: "Do you personally confirm that this is true?", }; // UserProfileView.vue constants export const NOTIFY_PROFILE_LOAD_ERROR = { title: "Profile Load Error", message: "There was a problem loading the profile.", }; // ProjectsView.vue constants export const NOTIFY_NO_ACCOUNT_ERROR = { title: "No Account Found", message: "You need an identifier to load your projects.", }; export const NOTIFY_PROJECT_LOAD_ERROR = { title: "Project Load Error", message: "Failed to get projects from the server.", }; export const NOTIFY_PROJECT_INIT_ERROR = { title: "Initialization Error", message: "Something went wrong loading your projects.", }; export const NOTIFY_OFFERS_LOAD_ERROR = { title: "Offer Load Error", message: "Failed to get offers from the server.", }; export const NOTIFY_OFFERS_FETCH_ERROR = { title: "Offer Fetch Error", message: "Got an error loading offers.", }; // ProjectsView.vue complex modals export const NOTIFY_CAMERA_SHARE_METHOD = { title: "Are you nearby with cameras?", text: "If so, we'll use those with QR codes to share.", yesText: "we are nearby with cameras", noText: "we will share another way", }; // SharedPhotoView.vue constants export const NOTIFY_SHARED_PHOTO_LOAD_ERROR = { title: "Error", message: "Got an error loading this data.", }; export const NOTIFY_SHARED_PHOTO_SAVE_ERROR = { title: "Error", message: "There was a problem saving the picture.", }; // OfferDialog.vue constants export const NOTIFY_OFFER_SETTINGS_ERROR = { title: "Error", message: "There was an error retrieving your settings.", }; export const NOTIFY_OFFER_RECORDING = { text: "Recording the offer...", title: "", }; export const NOTIFY_OFFER_IDENTITY_REQUIRED = { title: "Error", message: "You must select an identity before you can record an offer.", }; export const NOTIFY_OFFER_DESCRIPTION_REQUIRED = { title: "Error", message: "You must enter a description or some number of {unit}.", }; export const NOTIFY_OFFER_CREATION_ERROR = { title: "Error", message: "There was an error creating the offer.", }; export const NOTIFY_OFFER_SUCCESS = { title: "Success", message: "That offer was recorded.", }; export const NOTIFY_OFFER_SUBMISSION_ERROR = { title: "Error", message: "There was an error recording the offer.", }; // PhotoDialog.vue constants export const NOTIFY_PHOTO_SETTINGS_ERROR = { title: "Error", message: "There was an error retrieving your settings.", }; export const NOTIFY_PHOTO_CAPTURE_ERROR = { title: "Error", message: "Failed to take picture. Please try again.", }; export const NOTIFY_PHOTO_CAMERA_ERROR = { title: "Camera Error", message: "Could not access camera. Please check permissions and try again.", }; export const NOTIFY_PHOTO_UPLOAD_ERROR = { title: "Upload Error", message: "Failed to upload image. Please try again.", }; export const NOTIFY_PHOTO_UPLOAD_SUCCESS = { title: "Success", message: "Image uploaded successfully.", }; export const NOTIFY_PHOTO_UNSUPPORTED_FORMAT = { title: "Unsupported Format", message: "This file format is not supported. Please try a different image.", }; export const NOTIFY_PHOTO_SIZE_ERROR = { title: "File Too Large", message: "Image file is too large. Please choose a smaller image.", }; export const NOTIFY_PHOTO_PROCESSING_ERROR = { title: "Processing Error", message: "Failed to process image. Please try again.", }; // OnboardMeetingSetupView.vue constants export const NOTIFY_MEETING_INVALID_TIME = { title: "Invalid Time", message: "Select a future time for the meeting expiration.", }; export const NOTIFY_MEETING_NAME_REQUIRED = { title: "Invalid Name", message: "Please enter your name.", }; export const NOTIFY_MEETING_PASSWORD_REQUIRED = { title: "Invalid Password", message: "Please enter a password.", }; export const NOTIFY_MEETING_CREATED = { title: "Success", message: "Meeting created.", }; export const NOTIFY_MEETING_DELETED = { title: "Success", message: "Meeting deleted successfully.", }; export const NOTIFY_MEETING_LINK_COPIED = { title: "Copied", message: "The member link is copied to the clipboard.", }; // ContactsView.vue extracted notification messages export const NOTIFY_CONTACT_NO_INFO = { title: "No Contact Info", message: "There was no contact info to add. Try the other green buttons.", }; export const NOTIFY_CONTACT_INVALID_URL = { title: "Invalid URL", message: "Invalid contact URL format.", }; export const NOTIFY_CONTACTS_ADDED_CSV = { title: "Contacts Added", message: "Each contact was added. Nothing was sent to the server.", }; export const NOTIFY_CONTACTS_ADD_ERROR = { title: "Add Contacts Error", message: "An error occurred. Some contacts may have been added.", }; export const NOTIFY_CONTACT_INPUT_PARSE_ERROR = { title: "Invalid Contact List", message: "The input could not be parsed.", }; export const NOTIFY_CONTACT_NO_CONTACT_FOUND = { title: "No Contact Info", message: "No contact info was found in that input.", }; export const NOTIFY_CONTACT_NO_DID = { title: "Incomplete Contact", message: "Cannot add a contact without a DID.", }; export const NOTIFY_CONTACT_INVALID_DID = { title: "Invalid DID", message: "The DID must begin with 'did:'", }; export const NOTIFY_CONTACT_IMPORT_ERROR = { title: "Contact Not Added", message: "An error prevented this import.", }; export const NOTIFY_CONTACT_IMPORT_CONFLICT = { title: "Contact Not Added", message: "A contact with that DID is already in your contact list. Edit them directly below.", }; export const NOTIFY_CONTACT_IMPORT_CONSTRAINT = { title: "Contact Not Added", message: "Check that the contact doesn't conflict with any you already have.", }; export const NOTIFY_GIVES_LOAD_ERROR = { title: "Gives Load Error", message: "Got an error loading your gives.", }; export const NOTIFY_CONTACT_SETTING_SAVE_ERROR = { title: "Setting Save Error", message: "The setting may not have saved. Try again, maybe after restarting the app.", }; export const NOTIFY_MEETING_STATUS_ERROR = { title: "Meeting Error", message: "There was an error checking your meeting status.", }; export const NOTIFY_CONTACTS_ADDED_VISIBLE = { title: "Contact Added", message: "They were added, and your activity is visible to them.", }; export const NOTIFY_CONTACTS_ADDED = { title: "Contact Added", message: "They were added.", }; export const NOTIFY_CONTACT_INFO_COPY = { title: "Info", message: "Contact info will include name, ID, profile image, and public key.", }; export const NOTIFY_CONTACTS_SELECT_TO_COPY = { title: "Select Contacts", message: "You must select contacts to copy.", }; export const NOTIFY_CONTACT_LINK_COPIED = { title: "Copied", message: "contact link", }; // Template for registration success message export const getRegisterPersonSuccessMessage = (name?: string): string => `${name || "That unnamed person"} ${NOTIFY_REGISTER_PERSON_SUCCESS.message}`; // Template for visibility success message export const getVisibilitySuccessMessage = ( name?: string, visible = true, ): string => `${name || "That user"} can ${visible ? "" : "not "}see your activity.`; // ContactEditView.vue constants export const NOTIFY_CONTACT_NOT_FOUND = { title: "Contact Not Found", message: "Contact not found with DID", }; export const NOTIFY_CONTACT_METHODS_UPDATED = { title: "Contact Methods Updated", message: "Contact methods updated. Note that some methods have been updated, such as uppercasing 'email' to 'EMAIL'. Save again if the changes are acceptable.", }; export const NOTIFY_CONTACT_SAVED = { title: "Contact Saved", message: "Contact saved successfully", }; // Dynamic message template for contact not found (used in ContactEditView.vue) export const createContactNotFoundMessage = (did: string): string => `${NOTIFY_CONTACT_NOT_FOUND.message} ${did}`; // ContactAmountsView.vue constants export const NOTIFY_SETTINGS_RETRIEVAL_ERROR = { title: "Error", message: "There was an error retrieving your settings or contacts or gives.", }; export const NOTIFY_SERVER_RETRIEVAL_ERROR = { title: "Error With Server", message: "Got an error retrieving your given time from the server.", }; export const NOTIFY_CONFIRMATION_RESTRICTION = { title: "Not Allowed", message: "Only the recipient can confirm final receipt.", };