29 lines
691 B
Go
29 lines
691 B
Go
|
package options
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"fmt"
|
||
|
|
||
|
"bunker/client/internal/services/core"
|
||
|
"bunker/client/internal/services/core/options/dto"
|
||
|
"bunker/client/internal/services/core/options/models"
|
||
|
)
|
||
|
|
||
|
var errWidgetPaneAlreadyRegistered = errors.New("widget pane already registered")
|
||
|
|
||
|
func (o *options) RegisterOptionsWidget(widgetData *dto.OptionPane) error {
|
||
|
if _, found := o.widgets[widgetData.Name]; found {
|
||
|
return fmt.Errorf(
|
||
|
"%w: RegisterOptionsWidget: '%s': %w",
|
||
|
core.ErrOptions,
|
||
|
widgetData.Name,
|
||
|
errWidgetPaneAlreadyRegistered,
|
||
|
)
|
||
|
}
|
||
|
|
||
|
o.widgets[widgetData.Name] = models.OptionPaneFromDTO(widgetData)
|
||
|
o.widgetsItems = append(o.widgetsItems, widgetData.Name)
|
||
|
|
||
|
return nil
|
||
|
}
|