27 lines
487 B
Go
27 lines
487 B
Go
package layout
|
|
|
|
type Mode string
|
|
|
|
const (
|
|
ModeLocked Mode = "locked"
|
|
ModeStatic Mode = "static"
|
|
ModeEmpty Mode = "empty"
|
|
ModeEditor Mode = "editor"
|
|
ModeView Mode = "view"
|
|
)
|
|
|
|
func Resolve(isLocked bool, hasStaticPanel bool, hasSelectedEntry bool, editing bool) Mode {
|
|
switch {
|
|
case isLocked:
|
|
return ModeLocked
|
|
case hasStaticPanel:
|
|
return ModeStatic
|
|
case !hasSelectedEntry && !editing:
|
|
return ModeEmpty
|
|
case editing:
|
|
return ModeEditor
|
|
default:
|
|
return ModeView
|
|
}
|
|
}
|