@@ -29,7 +29,7 @@ const Timeline = () => {
2929 const memoStore = useMemoStore ( ) ;
3030 const memoList = useMemoList ( ) ;
3131 const [ , setLastVisited ] = useLocalStorage < string > ( "lastVisited" , Routes . TIMELINE ) ;
32- const { tag : tagQuery , text : textQuery } = useFilterWithUrlParams ( ) ;
32+ const filter = useFilterWithUrlParams ( ) ;
3333 const [ activityStats , setActivityStats ] = useState < Record < string , number > > ( { } ) ;
3434 const [ selectedDateString , setSelectedDateString ] = useState < string > ( new Date ( ) . toDateString ( ) ) ;
3535 const [ isRequesting , setIsRequesting ] = useState ( true ) ;
@@ -44,21 +44,11 @@ const Timeline = () => {
4444 useEffect ( ( ) => {
4545 memoList . reset ( ) ;
4646 fetchMemos ( "" ) ;
47- } , [ selectedDateString , tagQuery , textQuery ] ) ;
47+ } , [ selectedDateString , filter . text , filter . tag , filter . memoPropertyFilter ] ) ;
4848
4949 useEffect ( ( ) => {
5050 ( async ( ) => {
5151 const filters = [ `row_status == "NORMAL"` ] ;
52- const contentSearch : string [ ] = [ ] ;
53- if ( textQuery ) {
54- contentSearch . push ( JSON . stringify ( textQuery ) ) ;
55- }
56- if ( contentSearch . length > 0 ) {
57- filters . push ( `content_search == [${ contentSearch . join ( ", " ) } ]` ) ;
58- }
59- if ( tagQuery ) {
60- filters . push ( `tag == "${ tagQuery } "` ) ;
61- }
6252 const { stats } = await memoServiceClient . getUserMemosStats ( {
6353 name : user . name ,
6454 timezone : Intl . DateTimeFormat ( ) . resolvedOptions ( ) . timeZone ,
@@ -79,14 +69,25 @@ const Timeline = () => {
7969 setIsRequesting ( true ) ;
8070 const filters = [ `creator == "${ user . name } "` , `row_status == "NORMAL"` ] ;
8171 const contentSearch : string [ ] = [ ] ;
82- if ( textQuery ) {
83- contentSearch . push ( JSON . stringify ( textQuery ) ) ;
72+ if ( filter . text ) {
73+ contentSearch . push ( JSON . stringify ( filter . text ) ) ;
8474 }
8575 if ( contentSearch . length > 0 ) {
8676 filters . push ( `content_search == [${ contentSearch . join ( ", " ) } ]` ) ;
8777 }
88- if ( tagQuery ) {
89- filters . push ( `tag == "${ tagQuery } "` ) ;
78+ if ( filter . tag ) {
79+ filters . push ( `tag == "${ filter . tag } "` ) ;
80+ }
81+ if ( filter . memoPropertyFilter ) {
82+ if ( filter . memoPropertyFilter . hasLink ) {
83+ filters . push ( `has_link == true` ) ;
84+ }
85+ if ( filter . memoPropertyFilter . hasTaskList ) {
86+ filters . push ( `has_task_list == true` ) ;
87+ }
88+ if ( filter . memoPropertyFilter . hasCode ) {
89+ filters . push ( `has_code == true` ) ;
90+ }
9091 }
9192 if ( selectedDateString ) {
9293 const selectedDateStamp = getTimeStampByDate ( selectedDateString ) ;
0 commit comments