pl-fe: migrate drafts to query

Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
This commit is contained in:
nicole mikołajczyk
2025-09-20 11:48:46 +02:00
parent 1bc44e646b
commit bc013ccc39
15 changed files with 129 additions and 196 deletions

View File

@@ -20,6 +20,7 @@ import { useInstance } from 'pl-fe/hooks/use-instance';
import { useRegistrationStatus } from 'pl-fe/hooks/use-registration-status';
import { useFollowRequestsCount } from 'pl-fe/queries/accounts/use-follow-requests';
import { scheduledStatusesCountQueryOptions } from 'pl-fe/queries/statuses/scheduled-statuses';
import { useDraftStatusesCountQuery } from 'pl-fe/queries/statuses/use-draft-statuses';
import { useInteractionRequestsCount } from 'pl-fe/queries/statuses/use-interaction-requests';
import { makeGetOtherAccounts } from 'pl-fe/selectors';
import { useSettingsStore } from 'pl-fe/stores/settings';
@@ -107,7 +108,7 @@ const DropdownNavigation: React.FC = React.memo((): JSX.Element | null => {
const followRequestsCount = useFollowRequestsCount().data || 0;
const interactionRequestsCount = useInteractionRequestsCount().data || 0;
const scheduledStatusCount = useInfiniteQuery(authenticatedScheduledStatusesCountQueryOptions).data || 0;
const draftCount = useAppSelector((state) => Object.keys(state.draft_statuses).length);
const { data: draftCount = 0 } = useDraftStatusesCountQuery();
// const dashboardCount = useAppSelector((state) => state.admin.openReports.count() + state.admin.awaitingApproval.count());
const [sidebarVisible, setSidebarVisible] = useState(isSidebarOpen);
const touchStart = useRef(0);

View File

@@ -4,9 +4,9 @@ import { FormattedMessage, defineMessages, useIntl } from 'react-intl';
import { useHistory } from 'react-router-dom';
import { cancelReplyCompose } from 'pl-fe/actions/compose';
import { saveDraftStatus } from 'pl-fe/actions/draft-statuses';
import { useAppDispatch } from 'pl-fe/hooks/use-app-dispatch';
import { usePrevious } from 'pl-fe/hooks/use-previous';
import { usePersistDraftStatus } from 'pl-fe/queries/statuses/use-draft-statuses';
import { useModalsStore } from 'pl-fe/stores/modals';
import type { ModalType } from 'pl-fe/features/ui/components/modal-root';
@@ -38,6 +38,7 @@ const ModalRoot: React.FC<IModalRoot> = ({ children, onCancel, onClose, type })
const history = useHistory();
const dispatch = useAppDispatch();
const persistDraftStatus = usePersistDraftStatus();
const { openModal } = useModalsStore();
const [revealed, setRevealed] = useState(!!children);
@@ -85,7 +86,7 @@ const ModalRoot: React.FC<IModalRoot> = ({ children, onCancel, onClose, type })
},
secondary: intl.formatMessage(messages.saveDraft),
onSecondary: isEditing ? undefined : () => {
dispatch(saveDraftStatus('compose-modal'));
persistDraftStatus('compose-modal');
onClose('COMPOSE');
dispatch(cancelReplyCompose());
},

View File

@@ -17,6 +17,7 @@ import { useFollowRequestsCount } from 'pl-fe/queries/accounts/use-follow-reques
import { usePendingUsersCount } from 'pl-fe/queries/admin/use-accounts';
import { usePendingReportsCount } from 'pl-fe/queries/admin/use-reports';
import { scheduledStatusesCountQueryOptions } from 'pl-fe/queries/statuses/scheduled-statuses';
import { useDraftStatusesCountQuery } from 'pl-fe/queries/statuses/use-draft-statuses';
import { useInteractionRequestsCount } from 'pl-fe/queries/statuses/use-interaction-requests';
import { useModalsStore } from 'pl-fe/stores/modals';
import sourceCode from 'pl-fe/utils/code';
@@ -72,8 +73,8 @@ const SidebarNavigation: React.FC<ISidebarNavigation> = React.memo(({ shrink })
const { data: awaitingApprovalCount = 0 } = usePendingUsersCount();
const { data: pendingReportsCount = 0 } = usePendingReportsCount();
const dashboardCount = pendingReportsCount + awaitingApprovalCount;
const scheduledStatusCount = useInfiniteQuery(authenticatedScheduledStatusesCountQueryOptions).data || 0;
const draftCount = useAppSelector((state) => Object.keys(state.draft_statuses).length);
const { data: scheduledStatusCount = 0 } = useInfiniteQuery(authenticatedScheduledStatusesCountQueryOptions);
const { data: draftCount = 0 } = useDraftStatusesCountQuery();
const restrictUnauth = instance.pleroma.metadata.restrict_unauthenticated;