@@ -371,7 +371,7 @@ async function getChoices(which) {
371
371
} ,
372
372
'today-morning' : {
373
373
label : 'This Morning' ,
374
- repeatLabel : '- ' ,
374
+ repeatLabel : '' ,
375
375
time : NOW . startOf ( 'd' ) . add ( config . morning [ 0 ] , 'h' ) . add ( config . morning [ 1 ] , 'm' ) ,
376
376
timeString : 'Today' ,
377
377
repeatTime : '' ,
@@ -382,7 +382,7 @@ async function getChoices(which) {
382
382
} ,
383
383
'today-evening' : {
384
384
label : `Today ${ getEveningLabel ( config . evening [ 0 ] ) } ` ,
385
- repeatLabel : `Everyday` ,
385
+ repeatLabel : `Everyday, Now ` ,
386
386
time : NOW . startOf ( 'd' ) . add ( config . evening [ 0 ] , 'h' ) . add ( config . evening [ 1 ] , 'm' ) ,
387
387
timeString : 'Today' ,
388
388
repeatTime : NOW . format ( getHourFormat ( true ) ) ,
@@ -460,7 +460,9 @@ async function getChoices(which) {
460
460
461
461
async function calculateNextSnoozeTime ( data ) {
462
462
var NOW = dayjs ( ) , TYPE = data . type , [ HOUR , MINUTE ] = data . time ;
463
- if ( TYPE === 'hourly' ) {
463
+ if ( TYPE === 'startup' ) {
464
+ return NOW . add ( 20 , 'y' ) ;
465
+ } else if ( TYPE === 'hourly' ) {
464
466
var isNextHour = NOW . minute ( ) >= MINUTE ? 1 : 0 ;
465
467
return NOW . startOf ( 'h' ) . add ( isNextHour , 'h' ) . minute ( MINUTE ) . valueOf ( ) ;
466
468
} else if ( TYPE === 'daily' ) {
@@ -489,51 +491,6 @@ async function calculateNextSnoozeTime(data) {
489
491
return false ;
490
492
}
491
493
492
- // async function calculateNextSnoozeTime(repeat, start, data) {
493
- // var NOW = dayjs(), start = dayjs(start);
494
- // if (repeat === 'custom' && data) {
495
- // var days = [];
496
- // if (data.weekly) {
497
- // var thisWeek = data.weekly, nextWeek = data.weekly.map(day => day + 7);
498
- // days = nextWeek.concat(thisWeek).map(day => dayjs().startOf('w').add(day, 'd').add(start.hour(), 'h').add(start.minute(), 'm'));
499
- // } else if (data.monthly) {
500
- // var thisMonth = data.monthly.filter(d => d <= dayjs().daysInMonth()).map(d => dayjs().startOf('M').date(d).add(start.hour(), 'h').add(start.minute(), 'm'));
501
- // var nextMonth = data.monthly.filter(d => d <= dayjs().add(1, 'M').daysInMonth()).map(d => dayjs().startOf('M').add(1, 'M').date(d).add(start.hour(), 'h').add(start.minute(), 'm'));
502
- // days = nextMonth.concat(thisMonth);
503
- // }
504
- // return days.filter(d => d > NOW).pop();
505
- // } else if (repeat === 'startup') {
506
- // return NOW.add(20, 'y');
507
- // } else if (repeat === 'hourly') {
508
- // var isThisHour = NOW.minute() < start.minute();
509
- // return NOW.startOf('h').add(isThisHour ? 0 : 1, 'h').minute(start.minute());
510
- // } else if (repeat === 'daily') {
511
- // return dayjs().startOf('d').add(1, 'd').hour(NOW.hour()).minute(NOW.minute());
512
- // } else if (repeat === 'daily_morning') {
513
- // var morning = await getOptions('morning');
514
- // var isToday = NOW.hour() < morning[0] || (NOW.hour() === morning[0] && NOW.minute() < morning[1]);
515
- // return NOW.startOf('d').add(isToday ? 0 : 1, 'd').hour(morning[0]).minute(morning[1]);
516
- // } else if (repeat === 'daily_evening') {
517
- // var evening = await getOptions('evening');
518
- // var isToday = NOW.hour() < evening[0] || (NOW.hour() === evening[0] && NOW.minute() < evening[1]);
519
- // return NOW.startOf('d').add(isToday ? 0 : 1, 'd').hour(evening[0]).minute(evening[1]);
520
- // } else if (repeat === 'weekends') {
521
- // var isThisWeek = NOW.day() < 6 || (NOW.day() === 6 && (NOW.hour() < start.hour() || (NOW.hour() === start.hour() && NOW.minute() < start.minute())));
522
- // return NOW.startOf('w').add(isThisWeek ? 0 : 1, 'w').day(6).hour(start.hour()).minute(start.minute());
523
- // } else if (repeat === 'mondays') {
524
- // var isThisWeek = NOW.day() < 1 || (NOW.day() === 1 && (NOW.hour() < start.hour() || (NOW.hour() === start.hour() && NOW.minute() < start.minute())));
525
- // return NOW.startOf('w').add(isThisWeek ? 0 : 1, 'w').day(1).hour(start.hour()).minute(start.minute());
526
- // } else if (repeat === 'weekly') {
527
- // var isThisWeek = NOW.day() < start.day() || (NOW.day() === start.day() && (NOW.hour() < start.hour() || (NOW.hour() === start.hour() && NOW.minute() < start.minute())));
528
- // return NOW.startOf('w').add(isThisWeek ? 0 : 1, 'w').day(start.day()).hour(start.hour()).minute(start.minute());
529
- // } else if (repeat === 'monthly') {
530
- // var isThisMonth = NOW.date() < start.date() || (NOW.date() === start.date() && (NOW.hour() < start.hour() ||( NOW.hour() === start.hour() && NOW.minute() < start.minute()))) ? 0 : 1;
531
- // var isMonthValid = start.date() <= NOW.daysInMonth(isThisMonth, 'M') ? 0 : 1;
532
- // return NOW.startOf('M').add(isThisMonth + isMonthValid, 'M').date(start.date()).hour(start.hour()).minute(start.minute());
533
- // }
534
- // return false;
535
- // }
536
-
537
494
/* END ASYNC FUNCTIONS */
538
495
539
496
// var getFaviconUrl = url => `https://icons.duckduckgo.com/ip3/${getHostname(url)}.ico`
@@ -570,10 +527,10 @@ var sleeping = tabs => tabs.filter(t => !t.opened);
570
527
var today = tabs => tabs . filter ( t => t . wakeUpTime && dayjs ( t . wakeUpTime ) . dayOfYear ( ) === dayjs ( ) . dayOfYear ( ) && dayjs ( t . wakeUpTime ) . year ( ) === dayjs ( ) . year ( ) )
571
528
572
529
var isDefault = tabs => tabs . title && [ 'nap room | snoozz' , 'settings | snoozz' , 'rise and shine | snoozz' , 'New Tab' , 'Start Page' ] . includes ( tabs . title ) ;
573
- // var isDefault = tabs => false;
574
530
575
531
var isValid = tabs => tabs . url && [ 'http' , 'https' , 'ftp' , 'chrome-extension' , 'web-extension' , 'moz-extension' , 'extension' ] . includes ( tabs . url . substring ( 0 , tabs . url . indexOf ( ':' ) ) ) ;
576
- // var isValid = tabs => true;
532
+
533
+ var isSameYear = ( a , b ) => dayjs ( a ) . year ( ) === dayjs ( b ) . year ( ) ;
577
534
578
535
var capitalize = s => s . charAt ( 0 ) . toUpperCase ( ) + s . slice ( 1 ) ;
579
536
@@ -605,12 +562,13 @@ var clipboard = text => {
605
562
}
606
563
607
564
var formatSnoozedUntil = t => {
608
- if ( t . startUp ) return `Next ${ capitalize ( getBrowser ( ) ) } Launch` ;
565
+ if ( t . startUp || ( t . repeat && t . repeat . type === 'startup' ) ) return `Next ${ capitalize ( getBrowser ( ) ) } Launch` ;
609
566
var ts = t . wakeUpTime ;
610
567
var date = dayjs ( ts ) ;
611
568
if ( date . dayOfYear ( ) === dayjs ( ) . dayOfYear ( ) ) return ( date . hour ( ) > 17 ? 'Tonight' : 'Today' ) + date . format ( ` [@] ${ getHourFormat ( date . minute ( ) !== 0 ) } ` ) ;
612
569
if ( date . dayOfYear ( ) === dayjs ( ) . add ( 1 , 'd' ) . dayOfYear ( ) ) return 'Tomorrow' + date . format ( ` [@] ${ getHourFormat ( date . minute ( ) !== 0 ) } ` ) ;
613
570
if ( date . week ( ) === dayjs ( ) . week ( ) ) return date . format ( `dddd [@] ${ getHourFormat ( date . minute ( ) !== 0 ) } ` ) ;
571
+ if ( date . year ( ) !== dayjs ( ) . year ( ) ) return date . format ( `ddd, MMM D, YYYY` ) ;
614
572
return date . format ( `ddd, MMM D [@] ${ getHourFormat ( date . minute ( ) !== 0 ) } ` ) ;
615
573
}
616
574
0 commit comments