mirror of https://github.com/anoshenko/rui.git
Merge pull request #20 from anoshenko/feature/fix-theme-styles
Allow empty style/media-style serialization. Remove media-styles if t…
This commit is contained in:
commit
4c3bcf4427
25
theme.go
25
theme.go
|
|
@ -369,6 +369,15 @@ func (theme *theme) RemoveStyle(tag string) {
|
||||||
for _, mediaStyle := range theme.mediaStyles {
|
for _, mediaStyle := range theme.mediaStyles {
|
||||||
remove(mediaStyle.styles)
|
remove(mediaStyle.styles)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Remove empty media styles
|
||||||
|
newMediaStyles := make([]mediaStyle, 0)
|
||||||
|
for _, mediaStyle := range theme.mediaStyles {
|
||||||
|
if len(mediaStyle.styles) > 0 {
|
||||||
|
newMediaStyles = append(newMediaStyles, mediaStyle)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
theme.mediaStyles = newMediaStyles
|
||||||
}
|
}
|
||||||
|
|
||||||
func (theme *theme) MediaStyle(tag string, params MediaStyleParams) ViewStyle {
|
func (theme *theme) MediaStyle(tag string, params MediaStyleParams) ViewStyle {
|
||||||
|
|
@ -420,14 +429,24 @@ func (theme *theme) SetMediaStyle(tag string, params MediaStyleParams, style Vie
|
||||||
styles.MinHeight == params.MinHeight {
|
styles.MinHeight == params.MinHeight {
|
||||||
if style != nil {
|
if style != nil {
|
||||||
theme.mediaStyles[i].styles[tag] = style
|
theme.mediaStyles[i].styles[tag] = style
|
||||||
|
return
|
||||||
} else {
|
} else {
|
||||||
delete(theme.mediaStyles[i].styles, tag)
|
delete(theme.mediaStyles[i].styles, tag)
|
||||||
|
// Remove empty media styles
|
||||||
|
newMediaStyles := make([]mediaStyle, 0)
|
||||||
|
for _, mediaStyle := range theme.mediaStyles {
|
||||||
|
if len(mediaStyle.styles) > 0 {
|
||||||
|
newMediaStyles = append(newMediaStyles, mediaStyle)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
theme.mediaStyles = newMediaStyles
|
||||||
|
return
|
||||||
}
|
}
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if style != nil {
|
if style != nil {
|
||||||
|
// New media style, append and sort media styles
|
||||||
theme.mediaStyles = append(theme.mediaStyles, mediaStyle{
|
theme.mediaStyles = append(theme.mediaStyles, mediaStyle{
|
||||||
MediaStyleParams: params,
|
MediaStyleParams: params,
|
||||||
styles: map[string]ViewStyle{tag: style},
|
styles: map[string]ViewStyle{tag: style},
|
||||||
|
|
@ -977,7 +996,7 @@ func (theme *theme) String() string {
|
||||||
buffer.WriteString(" = [\n")
|
buffer.WriteString(" = [\n")
|
||||||
|
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
if style, ok := styles[tag]; ok && !style.IsEmpty() {
|
if style, ok := styles[tag]; ok {
|
||||||
buffer.WriteString("\t\t")
|
buffer.WriteString("\t\t")
|
||||||
writeViewStyle(tag, style, buffer, "\t\t", nil)
|
writeViewStyle(tag, style, buffer, "\t\t", nil)
|
||||||
buffer.WriteString(",\n")
|
buffer.WriteString(",\n")
|
||||||
|
|
@ -1028,7 +1047,7 @@ func (theme *theme) String() string {
|
||||||
buffer.WriteString(" = [\n")
|
buffer.WriteString(" = [\n")
|
||||||
|
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
if style, ok := media.styles[tag]; ok && !style.IsEmpty() {
|
if style, ok := media.styles[tag]; ok {
|
||||||
buffer.WriteString("\t\t")
|
buffer.WriteString("\t\t")
|
||||||
writeViewStyle(tag, style, buffer, "\t\t", nil)
|
writeViewStyle(tag, style, buffer, "\t\t", nil)
|
||||||
buffer.WriteString(",\n")
|
buffer.WriteString(",\n")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue