@@ -6,10 +6,12 @@ const RECORDED_KEY = 'recorded';
6
6
const defaultsSchema = yup . object ( {
7
7
startTime : yup . string ( ) . required ( ) ,
8
8
target : yup . string ( ) . required ( ) ,
9
+ break : yup . string ( ) . required ( ) ,
9
10
} ) . required ( ) ;
10
11
11
12
const recordedSchema = yup . object ( {
12
13
recorded : yup . string ( ) . required ( ) ,
14
+ breakTaken : yup . boolean ( ) . required ( ) ,
13
15
updated : yup . number ( ) . required ( ) . nullable ( )
14
16
} ) . required ( ) ;
15
17
@@ -39,27 +41,34 @@ export function getStoredDefaults() {
39
41
}
40
42
41
43
export function setStoredDefaults ( data ) {
42
- localStorage . setItem ( DEFAULTS_KEY , JSON . stringify ( data ) ) ;
44
+ try {
45
+ localStorage . setItem ( DEFAULTS_KEY , JSON . stringify ( defaultsSchema . cast ( data , { stripUnknown : true } ) ) ) ;
46
+ } catch ( e ) {
47
+ console . error ( `Error setting stored defaults: ${ e . message } ` ) ;
48
+ }
43
49
}
44
50
45
51
export function getStoredRecordedTime ( ) {
46
- const info = getJsonValue ( RECORDED_KEY , { recorded : '' , updated : null } ) ;
52
+ const info = getJsonValue ( RECORDED_KEY , { recorded : '' , breakTaken : false , updated : null } ) ;
47
53
try {
48
54
const data = recordedSchema . validateSync ( info ) ;
49
55
if ( data . updated != null ) {
50
56
const startOfDay = new Date ( ) ;
51
57
startOfDay . setHours ( 0 , 0 , 0 , 0 ) ;
52
58
53
59
if ( data . updated < startOfDay . valueOf ( ) ) {
54
- return '' ;
60
+ return { recorded : '0' , breakTaken : false } ;
55
61
}
56
62
}
57
- return data . recorded ;
63
+ return {
64
+ recorded : data . recorded ,
65
+ breakTaken : data . breakTaken ,
66
+ } ;
58
67
} catch ( e ) {
59
- return '' ;
68
+ return { recorded : '0' , breakTaken : false } ;
60
69
}
61
70
}
62
71
63
- export function setStoredRecordedTime ( recorded ) {
64
- localStorage . setItem ( RECORDED_KEY , JSON . stringify ( { recorded, updated : new Date ( ) . valueOf ( ) } ) ) ;
72
+ export function setStoredRecordedTime ( recorded , breakTaken ) {
73
+ localStorage . setItem ( RECORDED_KEY , JSON . stringify ( { recorded, breakTaken , updated : new Date ( ) . valueOf ( ) } ) ) ;
65
74
}
0 commit comments