11import { useRouter } from "next/router" ;
2- import { useRef , useState } from "react" ;
2+ import { useEffect , useRef , useState } from "react" ;
33import UrlService from "../../libs/UrlService" ;
44import { useEscapeAlerter , useOutsideAlerter } from "../../libs/view" ;
5+ import Subtask from "../Jotting/subtask" ;
56import Task from "../Jotting/task" ;
67import ShareMenu from "../ShareMenu/shareMenu" ;
78import jottingsControl from "./jottingsControl.module.css" ;
@@ -11,31 +12,39 @@ export default function TaskControl({ tasks }) {
1112 const urlService = new UrlService ( router ) ;
1213 const ref = useRef ( null ) ;
1314 const [ showShareMenu , setShowShareMenu ] = useState ( false ) ;
15+ const [ urlInfo , setUrlInfo ] = useState ( urlService . getQueryJottingInfo ( "task" ) || null ) ;
16+
17+ useEffect ( ( ) => {
18+ setUrlInfo ( urlService . getQueryJottingInfo ( "task" ) ) ;
19+ } , [ router . asPath ] ) ;
1420
1521 useOutsideAlerter ( ref , router ) ;
1622
1723 // Escape the jot popup when Escape is pressed
1824 useEscapeAlerter ( router ) ;
1925
20- urlService . setQueryToJottingInfo ( "task" ) ;
21-
22- return tasks &&
23- ( ( router . query . type &&
24- router . query . type == "task" &&
25- router . query . id ) ||
26- urlService . queryHasJottingInfo ( "task" ) ) ? (
26+ // Load notes and tasks before proceeding with showing any task or subtask
27+ return tasks && urlInfo != null ? (
2728 < article
2829 ref = { ref }
2930 className = { `${ jottingsControl . fullJotting } ${ jottingsControl . taskControl } ` }
3031 >
32+ { console . log ( "Searching for task with given id..." , urlInfo [ 1 ] ) }
3133 < div
3234 ref = { showShareMenu ? null : ref }
3335 className = { jottingsControl . jottingContent }
3436 >
35- < Task
36- showShareMenuState = { [ showShareMenu , setShowShareMenu ] }
37- { ...tasks . find ( ( item ) => item . id == router . query . id ) }
38- />
37+ {
38+ tasks . find ( item => item . id == urlInfo [ 1 ] ) ?
39+ < Task
40+ showShareMenuState = { [ showShareMenu , setShowShareMenu ] }
41+ { ...tasks . find ( ( item ) => item . id == urlInfo [ 1 ] ) }
42+ /> :
43+ < Subtask
44+ showShareMenuState = { [ showShareMenu , setShowShareMenu ] }
45+ id = { urlInfo [ 1 ] }
46+ />
47+ }
3948 </ div >
4049
4150 { showShareMenu && router . query . type == "task" ? (
0 commit comments