feat: add keyboard controls
- add keyboard listener for space, r, and q keys
- create shared state for server messages
- update desktop and terminal notifications to use shared state
🤖
This commit is contained in:
parent
11c599a371
commit
4dcc984784
7 changed files with 107 additions and 9 deletions
|
@ -1,12 +1,14 @@
|
|||
package notifications
|
||||
|
||||
import (
|
||||
"ChronoTomato/internal/shared"
|
||||
"fmt"
|
||||
"git.smsvc.net/pomodoro/GoTomato/pkg/models"
|
||||
"github.com/gen2brain/beeep"
|
||||
)
|
||||
|
||||
func DesktopNotifications(msg models.ServerMessage) {
|
||||
func DesktopNotifications() {
|
||||
msg := &shared.ServerMessage
|
||||
|
||||
var duration int
|
||||
var notification string
|
||||
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
package notifications
|
||||
|
||||
import (
|
||||
"ChronoTomato/internal/shared"
|
||||
"fmt"
|
||||
"git.smsvc.net/pomodoro/GoTomato/pkg/models"
|
||||
)
|
||||
|
||||
func TerminalOutput(msg models.ServerMessage) {
|
||||
func TerminalOutput() {
|
||||
var timerOutput string
|
||||
|
||||
msg := &shared.ServerMessage
|
||||
|
||||
fmt.Print("\033[H\033[2J") // Clears the screen
|
||||
|
||||
fmt.Printf("Work: %d | Break: %d | Longbreak: %d\n",
|
||||
|
|
7
internal/shared/state.go
Normal file
7
internal/shared/state.go
Normal file
|
@ -0,0 +1,7 @@
|
|||
package shared
|
||||
|
||||
import (
|
||||
"git.smsvc.net/pomodoro/GoTomato/pkg/models"
|
||||
)
|
||||
|
||||
var ServerMessage models.ServerMessage
|
|
@ -2,9 +2,9 @@ package websocket
|
|||
|
||||
import (
|
||||
"ChronoTomato/internal/notifications"
|
||||
"ChronoTomato/internal/shared"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"git.smsvc.net/pomodoro/GoTomato/pkg/models"
|
||||
"github.com/charmbracelet/log"
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
|
@ -12,7 +12,6 @@ import (
|
|||
var Done = make(chan struct{})
|
||||
|
||||
func ProcessServerMessages(conn *websocket.Conn) {
|
||||
var serverMessage models.ServerMessage
|
||||
|
||||
defer close(Done)
|
||||
|
||||
|
@ -24,14 +23,14 @@ func ProcessServerMessages(conn *websocket.Conn) {
|
|||
return
|
||||
}
|
||||
|
||||
err = json.Unmarshal(message, &serverMessage)
|
||||
err = json.Unmarshal(message, &shared.ServerMessage)
|
||||
if err != nil {
|
||||
log.Error("Error unmarshalling!", "reason", err)
|
||||
continue
|
||||
}
|
||||
|
||||
notifications.DesktopNotifications(serverMessage)
|
||||
notifications.TerminalOutput(serverMessage)
|
||||
notifications.DesktopNotifications()
|
||||
notifications.TerminalOutput()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue