23 lines
635 B
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")
|
|
}
|
|
}
|