github.com/status-im/status-go@v1.1.0/multiaccounts/common/const.go (about)

     1  package common
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  type CustomizationColor string
     8  
     9  const (
    10  	CustomizationColorPrimary   CustomizationColor = "primary"
    11  	CustomizationColorPurple    CustomizationColor = "purple"
    12  	CustomizationColorIndigo    CustomizationColor = "indigo"
    13  	CustomizationColorTurquoise CustomizationColor = "turquoise"
    14  	CustomizationColorBlue      CustomizationColor = "blue"
    15  	CustomizationColorGreen     CustomizationColor = "green"
    16  	CustomizationColorYellow    CustomizationColor = "yellow"
    17  	CustomizationColorOrange    CustomizationColor = "orange"
    18  	CustomizationColorRed       CustomizationColor = "red"
    19  	CustomizationColorFlamingo  CustomizationColor = "flamingo"
    20  	CustomizationColorBrown     CustomizationColor = "brown"
    21  	CustomizationColorSky       CustomizationColor = "sky"
    22  	CustomizationColorArmy      CustomizationColor = "army"
    23  	CustomizationColorMagenta   CustomizationColor = "magenta"
    24  	CustomizationColorCopper    CustomizationColor = "copper"
    25  	CustomizationColorCamel     CustomizationColor = "camel"
    26  	CustomizationColorYinYang   CustomizationColor = "yinyang"
    27  	CustomizationColorBeige     CustomizationColor = "beige"
    28  )
    29  
    30  var colorToIDMap = map[CustomizationColor]uint32{
    31  	CustomizationColorPrimary:   0,
    32  	CustomizationColorPurple:    1,
    33  	CustomizationColorIndigo:    2,
    34  	CustomizationColorTurquoise: 3,
    35  	CustomizationColorBlue:      4,
    36  	CustomizationColorGreen:     5,
    37  	CustomizationColorYellow:    6,
    38  	CustomizationColorOrange:    7,
    39  	CustomizationColorRed:       8,
    40  	CustomizationColorFlamingo:  9,
    41  	CustomizationColorBrown:     10,
    42  	CustomizationColorSky:       11,
    43  	CustomizationColorArmy:      12,
    44  	CustomizationColorMagenta:   13,
    45  	CustomizationColorCopper:    14,
    46  	CustomizationColorCamel:     15,
    47  	CustomizationColorYinYang:   16,
    48  	CustomizationColorBeige:     17,
    49  }
    50  
    51  func ColorToID(color CustomizationColor) (uint32, error) {
    52  	id, ok := colorToIDMap[color]
    53  	if !ok {
    54  		return 0, fmt.Errorf("Invalid color: %s", color)
    55  	}
    56  	return id, nil
    57  }
    58  
    59  func IDToColor(id uint32) (CustomizationColor, error) {
    60  	for color, colorID := range colorToIDMap {
    61  		if colorID == id {
    62  			return color, nil
    63  		}
    64  	}
    65  	return "", fmt.Errorf("Invalid color id: %d", id)
    66  }
    67  
    68  func ColorToIDFallbackToBlue(color CustomizationColor) uint32 {
    69  	id, err := ColorToID(color)
    70  	if err != nil {
    71  		return 4
    72  	}
    73  	return id
    74  }
    75  
    76  func IDToColorFallbackToBlue(id uint32) CustomizationColor {
    77  	color, err := IDToColor(id)
    78  	if err != nil {
    79  		return CustomizationColorBlue
    80  	}
    81  
    82  	return color
    83  }