Skip to content
Snippets Groups Projects
Unverified Commit ede51872 authored by Matiss Janis Aboltins's avatar Matiss Janis Aboltins Committed by GitHub
Browse files

:bug: fix link-schedule option in transaction table (#1250)


Closes #1236

---------

Co-authored-by: default avatarJed Fox <git@jedfox.com>
parent d36569d2
No related branches found
No related tags found
No related merge requests found
...@@ -7,13 +7,7 @@ import React, { ...@@ -7,13 +7,7 @@ import React, {
useMemo, useMemo,
} from 'react'; } from 'react';
import { useSelector, useDispatch } from 'react-redux'; import { useSelector, useDispatch } from 'react-redux';
import { import { Navigate, useParams, useLocation, useMatch } from 'react-router-dom';
Navigate,
useParams,
useNavigate,
useLocation,
useMatch,
} from 'react-router-dom';
import { debounce } from 'debounce'; import { debounce } from 'debounce';
import { bindActionCreators } from 'redux'; import { bindActionCreators } from 'redux';
...@@ -59,6 +53,7 @@ import SvgRemove from '../../icons/v2/Remove'; ...@@ -59,6 +53,7 @@ import SvgRemove from '../../icons/v2/Remove';
import SearchAlternate from '../../icons/v2/SearchAlternate'; import SearchAlternate from '../../icons/v2/SearchAlternate';
import { authorizeBank } from '../../nordigen'; import { authorizeBank } from '../../nordigen';
import { styles, colors } from '../../style'; import { styles, colors } from '../../style';
import { usePushModal } from '../../util/router-tools';
import { useActiveLocation } from '../ActiveLocation'; import { useActiveLocation } from '../ActiveLocation';
import AnimatedRefresh from '../AnimatedRefresh'; import AnimatedRefresh from '../AnimatedRefresh';
import { import {
...@@ -494,9 +489,8 @@ function SelectedTransactionsButton({ ...@@ -494,9 +489,8 @@ function SelectedTransactionsButton({
onCreateRule, onCreateRule,
onScheduleAction, onScheduleAction,
}) { }) {
let pushModal = usePushModal();
let selectedItems = useSelectedItems(); let selectedItems = useSelectedItems();
let navigate = useNavigate();
let location = useLocation();
let types = useMemo(() => { let types = useMemo(() => {
let items = [...selectedItems]; let items = [...selectedItems];
...@@ -608,14 +602,11 @@ function SelectedTransactionsButton({ ...@@ -608,14 +602,11 @@ function SelectedTransactionsButton({
} }
if (scheduleId) { if (scheduleId) {
navigate(`/schedule/edit/${scheduleId}`, { pushModal(`/schedule/edit/${scheduleId}`);
locationPtr: location,
});
} }
break; break;
case 'link-schedule': case 'link-schedule':
navigate(`/schedule/link`, { pushModal('/schedule/link', {
locationPtr: location,
transactionIds: [...selectedItems], transactionIds: [...selectedItems],
}); });
break; break;
...@@ -2124,7 +2115,7 @@ export default function Account() { ...@@ -2124,7 +2115,7 @@ export default function Account() {
{...actionCreators} {...actionCreators}
modalShowing={ modalShowing={
state.modalShowing || state.modalShowing ||
!!(activeLocation.state && activeLocation.state.locationPtr) !!(activeLocation.state && activeLocation.state.parent)
} }
accountId={params.id} accountId={params.id}
categoryId={activeLocation?.state?.filter?.category} categoryId={activeLocation?.state?.filter?.category}
......
...@@ -36,14 +36,9 @@ export function handleGlobalEvents(actions, store) { ...@@ -36,14 +36,9 @@ export function handleGlobalEvents(actions, store) {
}); });
listen('schedules-offline', ({ payees }) => { listen('schedules-offline', ({ payees }) => {
let navigate = window.__navigate; let pushModal = window.__pushModal;
if (navigate) { if (pushModal) {
navigate(`/schedule/posts-offline-notification`, { pushModal(`/schedule/posts-offline-notification`, { payees });
state: {
locationPtr: navigate.location,
payees,
},
});
} }
}); });
......
...@@ -13,9 +13,11 @@ let VERSION = Date.now(); ...@@ -13,9 +13,11 @@ let VERSION = Date.now();
export function ExposeNavigate() { export function ExposeNavigate() {
let navigate = useNavigate(); let navigate = useNavigate();
let pushModal = usePushModal();
useLayoutEffect(() => { useLayoutEffect(() => {
window.__navigate = navigate; window.__navigate = navigate;
}, [navigate]); window.__pushModal = pushModal;
}, [navigate, pushModal]);
return null; return null;
} }
...@@ -24,8 +26,10 @@ export function usePushModal() { ...@@ -24,8 +26,10 @@ export function usePushModal() {
let location = useLocation(); let location = useLocation();
return useCallback( return useCallback(
(path: To) => (path: To, stateProps: Record<string, unknown> = {}) =>
navigate(path, { state: { parent: location, _version: VERSION } }), navigate(path, {
state: { parent: location, _version: VERSION, ...stateProps },
}),
[navigate, location], [navigate, location],
); );
} }
......
...@@ -131,9 +131,7 @@ function getMenu(isDev, createWindow) { ...@@ -131,9 +131,7 @@ function getMenu(isDev, createWindow) {
enabled: false, enabled: false,
click: function (menuItem, focusedWin) { click: function (menuItem, focusedWin) {
focusedWin.webContents.executeJavaScript( focusedWin.webContents.executeJavaScript(
// TODO: fix '__pushModal && __pushModal("/schedule/discover")',
// '__navigate && __history.push("/schedule/discover", { locationPtr: __history.location })',
'alert("Not implemented")',
); );
}, },
}, },
......
import { usePushModal } from '../../desktop-client/src/util/router-tools';
export {}; export {};
declare global { declare global {
...@@ -9,5 +11,6 @@ declare global { ...@@ -9,5 +11,6 @@ declare global {
}; };
__navigate?: import('react-router').NavigateFunction; __navigate?: import('react-router').NavigateFunction;
__pushModal?: ReturnType<typeof usePushModal>;
} }
} }
---
category: Bugfix
authors: [MatissJanis]
---
Fix `link schedule` option in transaction table
---
category: Maintenance
authors: [j-f1]
---
Remove lingering references to `locationPtr` after `react-router` upgrade
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment