kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
Merge branch 'fix-bookmarks-reply' into 'main'
fix: reply in bookmarks Closes #1823 See merge request soapbox-pub/soapbox!3358merge-requests/3359/head
commit
82ed6d3a07
|
@ -1,6 +1,8 @@
|
|||
import { connect } from 'react-redux';
|
||||
|
||||
import { cancelReplyCompose } from 'soapbox/actions/compose.ts';
|
||||
import { Entities } from 'soapbox/entity-store/entities.ts';
|
||||
import { selectEntity } from 'soapbox/entity-store/selectors.ts';
|
||||
import { Status as StatusEntity } from 'soapbox/schemas/index.ts';
|
||||
import { makeGetStatus } from 'soapbox/selectors/index.ts';
|
||||
|
||||
|
@ -17,8 +19,11 @@ const makeMapStateToProps = () => {
|
|||
const statusId = state.compose.get(composeId)?.in_reply_to!;
|
||||
const editing = !!state.compose.get(composeId)?.id;
|
||||
|
||||
const legacyStatus = getStatus(state, { id: statusId }) as LegacyStatus;
|
||||
const statusEntity = selectEntity<StatusEntity>(state, Entities.STATUSES, statusId);
|
||||
|
||||
return {
|
||||
status: (getStatus(state, { id: statusId }) as LegacyStatus)?.toJS() as StatusEntity,
|
||||
status: (legacyStatus?.toJS() ?? statusEntity) as StatusEntity,
|
||||
hideActions: editing,
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,16 +1,28 @@
|
|||
import { replyCompose as replyComposeAction } from 'soapbox/actions/compose.ts';
|
||||
import { Entities } from 'soapbox/entity-store/entities.ts';
|
||||
import { selectEntity } from 'soapbox/entity-store/selectors.ts';
|
||||
import { useAppDispatch } from 'soapbox/hooks/useAppDispatch.ts';
|
||||
import { useGetState } from 'soapbox/hooks/useGetState.ts';
|
||||
import { normalizeStatus } from 'soapbox/normalizers/index.ts';
|
||||
import { Status as StatusEntity } from 'soapbox/schemas/index.ts';
|
||||
|
||||
import type { Status as LegacyStatus } from 'soapbox/types/entities.ts';
|
||||
|
||||
export function useReplyCompose() {
|
||||
const getState = useGetState();
|
||||
const dispatch = useAppDispatch();
|
||||
|
||||
const replyCompose = (statusId: string) => {
|
||||
const status = getState().statuses.get(statusId);
|
||||
let status: undefined|LegacyStatus|StatusEntity = getState().statuses.get(statusId);
|
||||
|
||||
if (status) {
|
||||
dispatch(replyComposeAction(status));
|
||||
}
|
||||
|
||||
status = selectEntity<StatusEntity>(getState(), Entities.STATUSES, statusId);
|
||||
if (status) {
|
||||
dispatch(replyComposeAction(normalizeStatus(status) as LegacyStatus));
|
||||
}
|
||||
};
|
||||
|
||||
return { replyCompose };
|
||||
|
|
|
@ -143,6 +143,9 @@ export const makeGetStatus = () => {
|
|||
(statusBase, statusReblog, username, filters, me, features) => {
|
||||
if (!statusBase) return null;
|
||||
const { account } = statusBase;
|
||||
|
||||
if (!account) return null;
|
||||
|
||||
const accountUsername = account.acct;
|
||||
|
||||
// Must be owner of status if username exists.
|
||||
|
|
Ładowanie…
Reference in New Issue