Change AddToast to use EventEnv instead of Event
This commit is contained in:
parent
f8e63c9772
commit
37d42e9a94
@ -52,7 +52,7 @@ func (c *Container) handleToastClose(event vugu.DOMEvent, toast vugu.Builder) {
|
|||||||
c.CloseToast(toast)
|
c.CloseToast(toast)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Container) AddToast(event vugu.DOMEvent, component vugu.Builder) {
|
func (c *Container) AddToast(eventEnv vugu.EventEnv, component vugu.Builder) {
|
||||||
toast := ContainerToast{
|
toast := ContainerToast{
|
||||||
body: component,
|
body: component,
|
||||||
signalClasses: "d3c-color-accent",
|
signalClasses: "d3c-color-accent",
|
||||||
@ -67,8 +67,8 @@ func (c *Container) AddToast(event vugu.DOMEvent, component vugu.Builder) {
|
|||||||
if durationGetter, ok := component.(ToastDurationGetter); ok && durationGetter.ToastDuration() > 0 {
|
if durationGetter, ok := component.(ToastDurationGetter); ok && durationGetter.ToastDuration() > 0 {
|
||||||
go func(component vugu.Builder) {
|
go func(component vugu.Builder) {
|
||||||
time.Sleep(durationGetter.ToastDuration())
|
time.Sleep(durationGetter.ToastDuration())
|
||||||
event.EventEnv().Lock()
|
eventEnv.Lock()
|
||||||
defer event.EventEnv().UnlockRender()
|
defer eventEnv.UnlockRender()
|
||||||
c.CloseToast(component)
|
c.CloseToast(component)
|
||||||
}(component)
|
}(component)
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ func (c *PageOverlays) handleSimpleModalButton(event vugu.DOMEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PageOverlays) handleSimpleToastButton(event vugu.DOMEvent) {
|
func (c *PageOverlays) handleSimpleToastButton(event vugu.DOMEvent) {
|
||||||
c.AddToast(event, &overlay.ToastSimple{
|
c.AddToast(event.EventEnv(), &overlay.ToastSimple{
|
||||||
IconSlot: &icons.LInfoCircle{AttrMap: vugu.AttrMap{"style": "font-size: 2em;"}},
|
IconSlot: &icons.LInfoCircle{AttrMap: vugu.AttrMap{"style": "font-size: 2em;"}},
|
||||||
Message: "This is a simple toast!\nIt supports multiple lines and has an icon slot.\nThere also can be multiple of it at the same time, this one was opened at " + time.Now().Format(time.TimeOnly) + ".",
|
Message: "This is a simple toast!\nIt supports multiple lines and has an icon slot.\nThere also can be multiple of it at the same time, this one was opened at " + time.Now().Format(time.TimeOnly) + ".",
|
||||||
SignalColor: "d3c-color-attention",
|
SignalColor: "d3c-color-attention",
|
||||||
@ -33,7 +33,7 @@ func (c *PageOverlays) handleSimpleToastButton(event vugu.DOMEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PageOverlays) handleWarningToastButton(event vugu.DOMEvent) {
|
func (c *PageOverlays) handleWarningToastButton(event vugu.DOMEvent) {
|
||||||
c.AddToast(event, &overlay.ToastSimple{
|
c.AddToast(event.EventEnv(), &overlay.ToastSimple{
|
||||||
IconSlot: &icons.LWarning{AttrMap: vugu.AttrMap{"style": "font-size: 2em;", "class": "d3c-color-caution d3c-icon-use-color"}},
|
IconSlot: &icons.LWarning{AttrMap: vugu.AttrMap{"style": "font-size: 2em;", "class": "d3c-color-caution d3c-icon-use-color"}},
|
||||||
Message: "This is a warning, be careful!",
|
Message: "This is a warning, be careful!",
|
||||||
SignalColor: "d3c-color-caution",
|
SignalColor: "d3c-color-caution",
|
||||||
@ -41,11 +41,11 @@ func (c *PageOverlays) handleWarningToastButton(event vugu.DOMEvent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PageOverlays) handleToastMessageButton(event vugu.DOMEvent) {
|
func (c *PageOverlays) handleToastMessageButton(event vugu.DOMEvent) {
|
||||||
c.AddToast(event, &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeCritical, Message: "Uh oh!"})
|
c.AddToast(event.EventEnv(), &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeCritical, Message: "Uh oh!"})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PageOverlays) handleToastMessageTimeoutButton(event vugu.DOMEvent) {
|
func (c *PageOverlays) handleToastMessageTimeoutButton(event vugu.DOMEvent) {
|
||||||
c.AddToast(event, &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeSuccess, Message: "That worked!", Duration: 5 * time.Second})
|
c.AddToast(event.EventEnv(), &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeSuccess, Message: "That worked!", Duration: 5 * time.Second})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PageOverlays) handleWaitOverlayButton(event vugu.DOMEvent) {
|
func (c *PageOverlays) handleWaitOverlayButton(event vugu.DOMEvent) {
|
||||||
|
@ -44,14 +44,14 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<view:Code>
|
<view:Code>
|
||||||
<pre vg-content='"func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
<pre vg-content='"func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
||||||
" c.AddToast(event, &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeCritical, Message: \"Uh oh!\"})\n" +
|
" c.AddToast(event.EventEnv(), &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeCritical, Message: \"Uh oh!\"})\n" +
|
||||||
"}"' style="margin: 0;"></pre>
|
"}"' style="margin: 0;"></pre>
|
||||||
</view:Code>
|
</view:Code>
|
||||||
<input:Button @Click="c.handleToastMessageButton(event)">Open message toast</input:Button>
|
<input:Button @Click="c.handleToastMessageButton(event)">Open message toast</input:Button>
|
||||||
<p>To let the toast close itself after some time, you can use the <view:CodeInline>Duration</view:CodeInline> option:</p>
|
<p>To let the toast close itself after some time, you can use the <view:CodeInline>Duration</view:CodeInline> option:</p>
|
||||||
<view:Code>
|
<view:Code>
|
||||||
<pre vg-content='"func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
<pre vg-content='"func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
||||||
" c.AddToast(event, &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeSuccess, Message: \"That worked!\", Duration: 5 * time.Second})\n" +
|
" c.AddToast(event.EventEnv(), &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeSuccess, Message: \"That worked!\", Duration: 5 * time.Second})\n" +
|
||||||
"}"' style="margin: 0;"></pre>
|
"}"' style="margin: 0;"></pre>
|
||||||
</view:Code>
|
</view:Code>
|
||||||
<input:Button @Click="c.handleToastMessageTimeoutButton(event)">Open self closing message toast</input:Button>
|
<input:Button @Click="c.handleToastMessageTimeoutButton(event)">Open self closing message toast</input:Button>
|
||||||
|
@ -564,7 +564,7 @@ func (c *PageOverlays) Build(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|||||||
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "pre", Attr: []vugu.VGAttribute{vugu.VGAttribute{Namespace: "", Key: "style", Val: "margin: 0;"}}}
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "pre", Attr: []vugu.VGAttribute{vugu.VGAttribute{Namespace: "", Key: "style", Val: "margin: 0;"}}}
|
||||||
vgparent.AppendChild(vgn)
|
vgparent.AppendChild(vgn)
|
||||||
vgn.SetInnerHTML("func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
vgn.SetInnerHTML("func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
||||||
" c.AddToast(event, &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeCritical, Message: \"Uh oh!\"})\n" +
|
" c.AddToast(event.EventEnv(), &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeCritical, Message: \"Uh oh!\"})\n" +
|
||||||
"}")
|
"}")
|
||||||
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
||||||
vgparent.AppendChild(vgn)
|
vgparent.AppendChild(vgn)
|
||||||
@ -663,7 +663,7 @@ func (c *PageOverlays) Build(vgin *vugu.BuildIn) (vgout *vugu.BuildOut) {
|
|||||||
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "pre", Attr: []vugu.VGAttribute{vugu.VGAttribute{Namespace: "", Key: "style", Val: "margin: 0;"}}}
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(3), Namespace: "", Data: "pre", Attr: []vugu.VGAttribute{vugu.VGAttribute{Namespace: "", Key: "style", Val: "margin: 0;"}}}
|
||||||
vgparent.AppendChild(vgn)
|
vgparent.AppendChild(vgn)
|
||||||
vgn.SetInnerHTML("func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
vgn.SetInnerHTML("func (c *PageOverlays) handleButton(event vugu.DOMEvent) {\n" +
|
||||||
" c.AddToast(event, &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeSuccess, Message: \"That worked!\", Duration: 5 * time.Second})\n" +
|
" c.AddToast(event.EventEnv(), &overlay.ToastMessage{MessageType: overlay.ToastMessageTypeSuccess, Message: \"That worked!\", Duration: 5 * time.Second})\n" +
|
||||||
"}")
|
"}")
|
||||||
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
vgn = &vugu.VGNode{Type: vugu.VGNodeType(1), Data: "\n\t\t"}
|
||||||
vgparent.AppendChild(vgn)
|
vgparent.AppendChild(vgn)
|
||||||
|
Loading…
Reference in New Issue
Block a user