diff --git a/app/javascript/mastodon/components/status_quoted.stories.tsx b/app/javascript/mastodon/components/status_quoted.stories.tsx new file mode 100644 index 0000000000..aa17a5422c --- /dev/null +++ b/app/javascript/mastodon/components/status_quoted.stories.tsx @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import { accountFactoryState, statusFactoryState } from '@/testing/factories'; + +import type { StatusQuoteManagerProps } from './status_quoted'; +import { StatusQuoteManager } from './status_quoted'; + +const meta = { + title: 'Components/Status/StatusQuoteManager', + render(args) { + return ; + }, + args: { + id: '1', + }, + parameters: { + state: { + accounts: { + '1': accountFactoryState({ id: '1', acct: 'hashtaguser' }), + }, + statuses: { + '1': statusFactoryState({ + id: '1', + text: 'Hello world!', + }), + }, + }, + }, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = {}; diff --git a/app/javascript/mastodon/components/status_quoted.tsx b/app/javascript/mastodon/components/status_quoted.tsx index eac2167294..33e791a548 100644 --- a/app/javascript/mastodon/components/status_quoted.tsx +++ b/app/javascript/mastodon/components/status_quoted.tsx @@ -4,20 +4,19 @@ import { FormattedMessage } from 'react-intl'; import type { Map as ImmutableMap } from 'immutable'; +import { fetchRelationships } from 'mastodon/actions/accounts'; +import { revealAccount } from 'mastodon/actions/accounts_typed'; +import { fetchStatus } from 'mastodon/actions/statuses'; import { LearnMoreLink } from 'mastodon/components/learn_more_link'; import StatusContainer from 'mastodon/containers/status_container'; import { domain } from 'mastodon/initial_state'; import type { Account } from 'mastodon/models/account'; import type { Status } from 'mastodon/models/status'; +import { makeGetStatusWithExtraInfo } from 'mastodon/selectors'; +import { getAccountHidden } from 'mastodon/selectors/accounts'; import type { RootState } from 'mastodon/store'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; -import { fetchRelationships } from '../actions/accounts'; -import { revealAccount } from '../actions/accounts_typed'; -import { fetchStatus } from '../actions/statuses'; -import { makeGetStatusWithExtraInfo } from '../selectors'; -import { getAccountHidden } from '../selectors/accounts'; - import { Button } from './button'; const MAX_QUOTE_POSTS_NESTING_LEVEL = 1; @@ -333,7 +332,7 @@ export const QuotedStatus: React.FC = ({ ); }; -interface StatusQuoteManagerProps { +export interface StatusQuoteManagerProps { id: string; contextType?: string; [key: string]: unknown; diff --git a/app/javascript/testing/factories.ts b/app/javascript/testing/factories.ts index 28c0eca809..26b020d8c2 100644 --- a/app/javascript/testing/factories.ts +++ b/app/javascript/testing/factories.ts @@ -76,7 +76,7 @@ export const statusFactory: FactoryFunction = ({ mentions: [], tags: [], emojis: [], - contentHtml: '

This is a test status.

', + contentHtml: data.text ?? '

This is a test status.

', ...data, });