memos/store/space_icon.go

23 lines
635 B
Go

package store
import (
"github.com/pkg/errors"
storepb "github.com/usememos/memos/proto/gen/store"
)
// ValidateSpaceIcon validates display metadata without depending on a client's
// installed Lucide catalog. A nil icon requests the default Space mark.
func ValidateSpaceIcon(icon *storepb.SpacePayload_Icon) error {
if icon == nil {
return nil
}
switch value := icon.Value.(type) {
case *storepb.SpacePayload_Icon_Emoji:
return validateEmojiIcon(value.Emoji)
case *storepb.SpacePayload_Icon_Lucide:
return validateLucideIcon(value.Lucide)
default:
return errors.New("space icon must specify emoji or lucide")
}
}