11import semver from 'semver'
2+ import humanizeDuration from 'humanize-duration'
23import { contextBridge , ipcRenderer , shell } from 'electron'
34import * as utils from './utils.js'
45
@@ -23,6 +24,24 @@ function exposeI18next () {
2324 } )
2425}
2526
27+ function exposeLongBreak ( ) {
28+ contextBridge . exposeInMainWorld ( 'breaks' , {
29+ sendBreakData : ( ) => ipcRenderer . invoke ( 'send-break-data' ) ,
30+ finishBreak : ( ) => ipcRenderer . send ( 'finish-break' , false ) ,
31+ postponeBreak : ( ) => ipcRenderer . send ( 'postpone-break' ) ,
32+ signalLoaded : ( ) => ipcRenderer . send ( 'long-break-loaded' )
33+ } )
34+ }
35+
36+ function exposeMiniBreak ( ) {
37+ contextBridge . exposeInMainWorld ( 'breaks' , {
38+ sendBreakData : ( ) => ipcRenderer . invoke ( 'send-microbreak-data' ) ,
39+ finishBreak : ( ) => ipcRenderer . send ( 'finish-microbreak' , false ) ,
40+ postponeBreak : ( ) => ipcRenderer . send ( 'postpone-microbreak' ) ,
41+ signalLoaded : ( ) => ipcRenderer . send ( 'mini-break-loaded' )
42+ } )
43+ }
44+
2645function exposeProcess ( ) {
2746 contextBridge . exposeInMainWorld ( 'process' , {
2847 platform : ( ) => process . platform ,
@@ -46,6 +65,7 @@ function exposeSemver () {
4665
4766function exposeSettings ( ) {
4867 contextBridge . exposeInMainWorld ( 'settings' , {
68+ get : ( key ) => ipcRenderer . invoke ( 'settings-get' , key ) ,
4969 currentSettings : async ( ) => {
5070 return await ipcRenderer . invoke ( 'current-settings' )
5171 } ,
@@ -84,16 +104,27 @@ function exposeStretchly () {
84104
85105function exposeUtils ( ) {
86106 contextBridge . exposeInMainWorld ( 'utils' , {
107+ formatKeyboardShortcut : utils . formatKeyboardShortcut ,
108+ formatTimeRemaining : async ( milliseconds , locale ) => {
109+ const i18n = {
110+ t : ( key , options ) => ipcRenderer . invoke ( 'i18next-translate' , key , options )
111+ }
112+ return utils . formatTimeRemaining ( milliseconds , locale , i18n , humanizeDuration )
113+ } ,
87114 shouldShowNotificationTitle : ( platform , systemVersion ) => {
88115 return utils . shouldShowNotificationTitle ( platform , systemVersion , semver )
89- }
116+ } ,
117+ canPostpone : utils . canPostpone ,
118+ canSkip : utils . canSkip
90119 } )
91120}
92121
93122export {
94123 exposeElectronApi ,
95124 exposeGlobal ,
96125 exposeI18next ,
126+ exposeLongBreak ,
127+ exposeMiniBreak ,
97128 exposeSemver ,
98129 exposeSettings ,
99130 exposeStretchly ,
0 commit comments