Ensure consistent error handling and improve resource cleanup across widgets and APIs.
This commit is contained in:
+10
-14
@@ -289,25 +289,20 @@ func (widget *MoodText) Keyboard(k *terminalapi.Keyboard, _ *widgetapi.EventMeta
|
||||
}
|
||||
break
|
||||
case keyboard.KeyBackspace, keyboard.KeyBackspace2:
|
||||
widget.WriteMood(0)
|
||||
break
|
||||
return widget.WriteMood(0)
|
||||
case '1':
|
||||
widget.WriteMood(1)
|
||||
break
|
||||
return widget.WriteMood(1)
|
||||
case '2':
|
||||
widget.WriteMood(2)
|
||||
break
|
||||
return widget.WriteMood(2)
|
||||
case '3':
|
||||
widget.WriteMood(3)
|
||||
break
|
||||
return widget.WriteMood(3)
|
||||
default:
|
||||
widget.WriteMood(-1)
|
||||
break
|
||||
return widget.WriteMood(-1)
|
||||
}
|
||||
return widget.drawTable()
|
||||
}
|
||||
|
||||
func (widget *MoodText) WriteMood(mood int) {
|
||||
func (widget *MoodText) WriteMood(mood int) error {
|
||||
m := moods()
|
||||
if m[strconv.Itoa(time.Now().Year())] == nil {
|
||||
m[strconv.Itoa(time.Now().Year())] = make(map[string]map[string]int)
|
||||
@@ -318,10 +313,11 @@ func (widget *MoodText) WriteMood(mood int) {
|
||||
m[strconv.Itoa(time.Now().Year())][strconv.Itoa(int(widget.selectedMonth))][strconv.Itoa(widget.selectedDay)] = mood
|
||||
newMoods, err := json.MarshalIndent(m, "", " ")
|
||||
if err != nil {
|
||||
widget.Write(fmt.Sprintf("Error: %s", err.Error()), text.WriteCellOpts(cell.FgColor(cell.ColorRed)))
|
||||
return widget.Write(fmt.Sprintf("Error: %s", err.Error()), text.WriteCellOpts(cell.FgColor(cell.ColorRed)))
|
||||
|
||||
}
|
||||
if err := os.WriteFile(moodsFile, newMoods, 0644); err != nil {
|
||||
widget.Write(fmt.Sprintf("Error: %s", err.Error()), text.WriteCellOpts(cell.FgColor(cell.ColorRed)))
|
||||
// ignore
|
||||
return widget.Write(fmt.Sprintf("Error: %s", err.Error()), text.WriteCellOpts(cell.FgColor(cell.ColorRed)))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user