all repos — snow-editor @ 970ebf52cf5910cc2f16975f6021a80ada3a308a

small and cozy markdown, and orgmode editor

src/lib/strings.js (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
export const STR = {
  UNTITLED_DOCUMENT: 'Untitled document',

  SHARE: 'Share',
  SHARE_DOCUMENT: 'Share document',
  TITLE: 'Title',
  LINK_VALIDITY: 'Link validity',
  EXPIRY_1H: '1 hour',
  EXPIRY_24H: '24 hours',
  EXPIRY_7D: '7 days',
  EXPIRY_30D: '30 days',
  EXPIRY_NEVER: 'Never expires',
  EXPIRES_ON: (date) => `Expires on ${date}`,
  EXPIRES_SOON: 'Expires soon',
  CANCEL: 'Cancel',
  CLOSE: 'Close',
  CREATING: 'Creating…',
  CREATE_LINKS: 'Create links',
  VIEW_LINK: 'View link',
  EDIT_LINK: 'Edit link',
  COPY: 'Copy',
  COPIED: 'Copied',
  COPY_FAILED: 'Could not copy the link.',

  BADGE_LOCAL: 'Local',
  BADGE_SHARED: 'Shared',
  BADGE_READONLY: 'Read-only',
  BADGE_EDITING: 'Editing',

  SHARED_VIEW: 'Shared view',
  SHARED_EDIT: 'Shared edit',
  SAVE_TO_SERVER: 'Save to server',
  RELEASE_EDIT_LOCK: 'Release edit lock',
  DOWNLOAD_MD: 'Download .md',
  DOWNLOAD_ORG: 'Download .org',

  LOADING_DOCUMENT: 'Loading document…',
  OPEN_IN_SNOW_EDITOR: 'Open in Snow Editor',

  LINK_EXPIRED_TITLE: 'Link expired',
  LINK_EXPIRED_VIEW: 'This link has expired.',
  LINK_EXPIRED_EDIT: 'This edit link has expired.',
  DOCUMENT_NOT_FOUND_TITLE: 'Document not found',
  LOAD_ERROR_TITLE: 'Failed to load',

  LOCKED_BY_OTHER:
    'This document is being edited by someone else. You can view it, but not edit it right now.',
  LOCK_LOST:
    'You lost edit permission for this document. Your text was not deleted. Save a local copy before leaving.',
  LOCK_EXPIRES_AT: 'Lock expires at',

  SAVE_SAVING: 'Saving…',
  SAVE_SAVED: 'Saved',
  SAVE_ERROR: 'Save failed',
  SAVE_NO_PERMISSION: 'No edit permission',

  FOOTER_SHARED: 'Snow Editor · shared document',

  NOT_FOUND: 'Document not found.',
  EXPIRED: 'This link has expired.',
  DOCUMENT_LOCKED: 'This document is being edited by someone else.',
  LOCK_REQUIRED: 'You need an active edit lock to save.',
  CONTENT_TOO_LARGE: 'Document is larger than 1 MB.',
  RATE_LIMIT: 'Too many requests. Try again in a minute.',
  NETWORK: 'Could not connect to the server. Check your connection.',
  GENERIC_ERROR: 'Something went wrong.',
  UNEXPECTED_ERROR: 'An unexpected error occurred.',
};

export const EXPIRY_OPTIONS = [
  { value: '1h', label: STR.EXPIRY_1H },
  { value: '24h', label: STR.EXPIRY_24H },
  { value: '7d', label: STR.EXPIRY_7D },
  { value: '30d', label: STR.EXPIRY_30D },
  { value: 'never', label: STR.EXPIRY_NEVER },
];

const DATE_LOCALE = 'en-US';
const DATE_OPTIONS = { dateStyle: 'medium', timeStyle: 'short' };

export function formatExpiryDate(iso) {
  if (!iso) return STR.EXPIRY_NEVER;
  try {
    return STR.EXPIRES_ON(new Date(iso).toLocaleString(DATE_LOCALE, DATE_OPTIONS));
  } catch {
    return STR.EXPIRES_SOON;
  }
}

export function formatLockExpiry(iso) {
  if (!iso) return null;
  try {
    return new Date(iso).toLocaleString(DATE_LOCALE, DATE_OPTIONS);
  } catch {
    return null;
  }
}