diff --git a/app/soapbox/components/account.tsx b/app/soapbox/components/account.tsx index 281e1aee2b..438d2f0f4b 100644 --- a/app/soapbox/components/account.tsx +++ b/app/soapbox/components/account.tsx @@ -8,7 +8,7 @@ import { useAppSelector, useOnScreen } from 'soapbox/hooks'; import { getAcct } from 'soapbox/utils/accounts'; import { displayFqn } from 'soapbox/utils/state'; -import RelativeTimestamp from './relative_timestamp'; +import RelativeTimestamp from './relative-timestamp'; import { Avatar, Emoji, HStack, Icon, IconButton, Stack, Text } from './ui'; import type { Account as AccountEntity } from 'soapbox/types/entities'; @@ -54,7 +54,7 @@ interface IAccount { id?: string, onActionClick?: (account: any) => void, showProfileHoverCard?: boolean, - timestamp?: string | Date, + timestamp?: string, timestampUrl?: string, futureTimestamp?: boolean, withAccountNote?: boolean, diff --git a/app/soapbox/components/display-name.tsx b/app/soapbox/components/display-name.tsx index 1bb72a3191..63028ccfef 100644 --- a/app/soapbox/components/display-name.tsx +++ b/app/soapbox/components/display-name.tsx @@ -6,7 +6,7 @@ import { useSoapboxConfig } from 'soapbox/hooks'; import { getAcct } from '../utils/accounts'; import Icon from './icon'; -import RelativeTimestamp from './relative_timestamp'; +import RelativeTimestamp from './relative-timestamp'; import VerificationBadge from './verification_badge'; import type { Account } from 'soapbox/types/entities'; diff --git a/app/soapbox/components/polls/poll-footer.tsx b/app/soapbox/components/polls/poll-footer.tsx index 366f34d1cc..ef4ca2276e 100644 --- a/app/soapbox/components/polls/poll-footer.tsx +++ b/app/soapbox/components/polls/poll-footer.tsx @@ -4,7 +4,7 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { fetchPoll, vote } from 'soapbox/actions/polls'; import { useAppDispatch } from 'soapbox/hooks'; -import RelativeTimestamp from '../relative_timestamp'; +import RelativeTimestamp from '../relative-timestamp'; import { Button, HStack, Stack, Text, Tooltip } from '../ui'; import type { Selected } from './poll'; diff --git a/app/soapbox/components/relative_timestamp.js b/app/soapbox/components/relative-timestamp.tsx similarity index 78% rename from app/soapbox/components/relative_timestamp.js rename to app/soapbox/components/relative-timestamp.tsx index 1e64f98071..d530051d8f 100644 Binary files a/app/soapbox/components/relative_timestamp.js and b/app/soapbox/components/relative-timestamp.tsx differ diff --git a/app/soapbox/components/ui/text/text.tsx b/app/soapbox/components/ui/text/text.tsx index 933ac7a760..d255549722 100644 --- a/app/soapbox/components/ui/text/text.tsx +++ b/app/soapbox/components/ui/text/text.tsx @@ -84,7 +84,9 @@ interface IText extends Pick, 'danger /** Whether to truncate the text if its container is too small. */ truncate?: boolean, /** Font weight of the text. */ - weight?: Weights + weight?: Weights, + /** Tooltip title. */ + title?: string, } /** UI-friendly text container with dark mode support. */ @@ -133,4 +135,7 @@ const Text: React.FC = React.forwardRef( }, ); -export default Text; +export { + Text as default, + IText, +}; diff --git a/app/soapbox/features/directory/components/account_card.tsx b/app/soapbox/features/directory/components/account_card.tsx index ca3e852f19..12ac5e7a73 100644 --- a/app/soapbox/features/directory/components/account_card.tsx +++ b/app/soapbox/features/directory/components/account_card.tsx @@ -6,7 +6,7 @@ import { getSettings } from 'soapbox/actions/settings'; import Avatar from 'soapbox/components/avatar'; import DisplayName from 'soapbox/components/display-name'; import Permalink from 'soapbox/components/permalink'; -import RelativeTimestamp from 'soapbox/components/relative_timestamp'; +import RelativeTimestamp from 'soapbox/components/relative-timestamp'; import { Text } from 'soapbox/components/ui'; import ActionButton from 'soapbox/features/ui/components/action-button'; import { useAppSelector } from 'soapbox/hooks'; diff --git a/app/soapbox/normalizers/__tests__/poll.test.ts b/app/soapbox/normalizers/__tests__/poll.test.ts index 8acf2ece45..b7ba0a46f8 100644 --- a/app/soapbox/normalizers/__tests__/poll.test.ts +++ b/app/soapbox/normalizers/__tests__/poll.test.ts @@ -21,7 +21,6 @@ describe('normalizePoll()', () => { expect(ImmutableRecord.isRecord(result)).toBe(true); expect(ImmutableRecord.isRecord(result.options.get(0))).toBe(true); expect(result.toJS()).toMatchObject(expected); - expect(result.expires_at instanceof Date).toBe(true); }); it('normalizes a Pleroma logged-out poll', () => { diff --git a/app/soapbox/normalizers/__tests__/status.test.ts b/app/soapbox/normalizers/__tests__/status.test.ts index 43336d00f7..b60373975c 100644 --- a/app/soapbox/normalizers/__tests__/status.test.ts +++ b/app/soapbox/normalizers/__tests__/status.test.ts @@ -164,7 +164,6 @@ describe('normalizeStatus()', () => { expect(ImmutableRecord.isRecord(poll)).toBe(true); expect(ImmutableRecord.isRecord(poll.options.get(0))).toBe(true); expect(poll.toJS()).toMatchObject(expected); - expect(poll.expires_at instanceof Date).toBe(true); }); it('normalizes a Pleroma logged-out poll', () => { diff --git a/app/soapbox/normalizers/account.ts b/app/soapbox/normalizers/account.ts index 1a519b8a81..cfaf92a1c9 100644 --- a/app/soapbox/normalizers/account.ts +++ b/app/soapbox/normalizers/account.ts @@ -26,7 +26,7 @@ export const AccountRecord = ImmutableRecord({ avatar_static: '', birthday: '', bot: false, - created_at: new Date(), + created_at: '', discoverable: false, display_name: '', emojis: ImmutableList(), @@ -38,7 +38,7 @@ export const AccountRecord = ImmutableRecord({ header: '', header_static: '', id: '', - last_status_at: new Date(), + last_status_at: '', location: '', locked: false, moved: null as EmbeddedEntity, diff --git a/app/soapbox/normalizers/poll.ts b/app/soapbox/normalizers/poll.ts index fb0f786ed3..efae796c32 100644 --- a/app/soapbox/normalizers/poll.ts +++ b/app/soapbox/normalizers/poll.ts @@ -21,7 +21,7 @@ import type { Emoji, PollOption } from 'soapbox/types/entities'; export const PollRecord = ImmutableRecord({ emojis: ImmutableList(), expired: false, - expires_at: new Date(), + expires_at: '', id: '', multiple: false, options: ImmutableList(), diff --git a/app/soapbox/normalizers/status.ts b/app/soapbox/normalizers/status.ts index 6f35a3900b..4788758d38 100644 --- a/app/soapbox/normalizers/status.ts +++ b/app/soapbox/normalizers/status.ts @@ -28,8 +28,8 @@ export const StatusRecord = ImmutableRecord({ bookmarked: false, card: null as Card | null, content: '', - created_at: new Date(), - edited_at: null as Date | null, + created_at: '', + edited_at: null as string | null, emojis: ImmutableList(), favourited: false, favourites_count: 0,