11import '@logseq/libs' ;
2- import moment from 'moment' ;
32import TickTick from './ticktick/ticktick' ;
43import { NewTask , Subtask } from './ticktick/task' ;
54import { logseq as PackageLogseq } from '../package.json' ;
@@ -9,7 +8,7 @@ import { BlockEntity } from '@logseq/libs/dist/LSPlugin';
98const pluginId = PackageLogseq . id ;
109const ticktick = new TickTick ( ) ;
1110
12- const priorityToNum = ( text : string ) : 0 | 1 | 3 | 5 => {
11+ const priorityToNum = ( text : string ) : 0 | 1 | 3 | 5 => {
1312 const priority = text . match ( / \[ # ( [ A - C ] ) \] / ) ;
1413 if ( priority ) {
1514 switch ( priority [ 1 ] ) {
@@ -27,11 +26,11 @@ const priorityToNum = (text: string): 0 | 1 | 3 | 5 => {
2726const priorityToTag = ( priority : 0 | 1 | 3 | 5 | undefined ) : string => {
2827 switch ( priority ) {
2928 case 5 :
30- return ' [#A] ' ;
29+ return '[#A] ' ;
3130 case 3 :
32- return ' [#B] ' ;
31+ return '[#B] ' ;
3332 case 1 :
34- return ' [#C] ' ;
33+ return '[#C] ' ;
3534 }
3635 return '' ;
3736} ;
@@ -49,11 +48,15 @@ const parseTask = (text: string): NewTask => {
4948 } ;
5049} ;
5150
52- const getTreeContent : ( block : BlockEntity ) => Promise < BlockEntity | null > = async ( block ) => {
53- const blockEntity = await logseq . Editor . getBlock ( block . uuid , { includeChildren : true } ) ;
51+ const getTreeContent : (
52+ block : BlockEntity ,
53+ ) => Promise < BlockEntity | null > = async ( block ) => {
54+ const blockEntity = await logseq . Editor . getBlock ( block . uuid , {
55+ includeChildren : true ,
56+ } ) ;
5457
5558 return blockEntity ;
56- }
59+ } ;
5760
5861const flattenTree : ( node : BlockEntity ) => BlockEntity [ ] = ( node ) => {
5962 const result : BlockEntity [ ] = [ node ] ;
@@ -65,40 +68,57 @@ const flattenTree: (node: BlockEntity) => BlockEntity[] = (node) => {
6568 }
6669
6770 return result ;
68- }
71+ } ;
72+
73+ const onSettingsChanged = async ( ) => {
74+ const settings = getTickTickSettings ( ) ;
75+ if (
76+ settings . accessToken === '' &&
77+ settings . accessCode !== '' &&
78+ settings . clientId !== '' &&
79+ settings . clientSecret !== '' &&
80+ settings . redirectUri !== ''
81+ ) {
82+ const accessToken = await ticktick . getAccessToken (
83+ settings . clientId ,
84+ settings . clientSecret ,
85+ settings . accessCode ,
86+ settings . redirectUri ,
87+ ) ;
88+ logseq . updateSettings ( { access_token : accessToken } ) ;
89+ logseq . UI . showMsg (
90+ 'TickTick access token updated successfully.' ,
91+ 'success' ,
92+ {
93+ timeout : 5000 ,
94+ } ,
95+ ) ;
96+ }
97+
98+ if (
99+ settings . accessToken !== '' &&
100+ settings . accessCode === '' &&
101+ settings . clientId === '' &&
102+ settings . clientSecret === '' &&
103+ settings . redirectUri === ''
104+ ) {
105+ logseq . updateSettings ( { access_token : '' } ) ;
106+ logseq . UI . showMsg (
107+ 'TickTick access token cleared successfully.' ,
108+ 'success' ,
109+ {
110+ timeout : 5000 ,
111+ } ,
112+ ) ;
113+ }
114+ } ;
69115
70116const main : ( ) => Promise < void > = async ( ) => {
71117 console . info ( `#${ pluginId } : MAIN` ) ;
72118
73119 logseq . useSettingsSchema ( settingsSchema ) ;
120+ logseq . onSettingsChanged ( onSettingsChanged ) ;
74121 let settings = getTickTickSettings ( ) ;
75-
76- logseq . onSettingsChanged ( ( ) => {
77- settings = getTickTickSettings ( ) ;
78-
79- if (
80- settings . accessToken === '' &&
81- settings . accessCode !== '' &&
82- settings . clientId !== '' &&
83- settings . clientSecret !== '' &&
84- settings . redirectUri !== ''
85- ) {
86- ticktick
87- . getAccessToken (
88- settings . clientId ,
89- settings . clientSecret ,
90- settings . accessCode ,
91- settings . redirectUri ,
92- )
93- . then ( ( accessToken ) => {
94- logseq . updateSettings ( { accessToken } ) ;
95- logseq . UI . showMsg (
96- 'TickTick access token updated successfully.' ,
97- 'success' ,
98- ) ;
99- } ) ;
100- }
101- } ) ;
102122
103123 if ( settings . accessToken !== '' ) {
104124 ticktick . setAccessToken ( settings . accessToken ) ;
@@ -120,26 +140,28 @@ const main: () => Promise<void> = async () => {
120140 const flatContentTree = flattenTree ( contentTree ) ;
121141 console . log ( flatContentTree ) ;
122142
123- const subtasks : Subtask [ ] = flatContentTree . slice ( 1 ) . map ( child => {
143+ const subtasks : Subtask [ ] = flatContentTree . slice ( 1 ) . map ( ( child ) => {
124144 const subtask : Subtask = {
125145 title : child . content . replace ( / T O D O / , '' ) . replace ( / \[ # ( [ A - C ] ) \] / , '' ) ,
126146 } ;
127147 return subtask ;
128148 } ) ;
129149
130150 const task = parseTask ( flatContentTree [ 0 ] ?. content || '' ) ;
131- task . items = subtasks ;
151+ task . items = subtasks ;
132152
133153 try {
134154 const newTask = await ticktick . createTask ( task ) ;
135155 await logseq . Editor . updateBlock (
136156 blockEntity . uuid ,
137- `TODO${ priorityToTag ( newTask . priority ) } [${ newTask . title } ](${ newTask . taskUrl } )` ,
157+ `TODO ${ priorityToTag ( newTask . priority ) } [${ newTask . title } ](${
158+ newTask . taskUrl
159+ } )`,
138160 ) ;
139161 } catch ( error ) {
140162 logseq . UI . showMsg ( 'TickTick access token is invalid.' , 'error' ) ;
141163 }
142164 } ) ;
143- }
165+ } ;
144166
145- logseq . ready ( main ) . catch ( console . error ) ;
167+ logseq . ready ( main ) . catch ( console . error ) ;
0 commit comments