FEATURE: Store dismissed state of topic nav popups (#15570)
The dismissed state will be stored between sessions if popupId attribute is present.
This commit is contained in:
parent
376799b1a4
commit
4951900bbc
|
@ -1,12 +1,43 @@
|
||||||
import Component from "@ember/component";
|
import Component from "@ember/component";
|
||||||
import { action } from "@ember/object";
|
import { action } from "@ember/object";
|
||||||
|
import discourseComputed from "discourse-common/utils/decorators";
|
||||||
|
|
||||||
export default Component.extend({
|
export default Component.extend({
|
||||||
tagName: "",
|
tagName: "",
|
||||||
|
popupId: null,
|
||||||
hidden: false,
|
hidden: false,
|
||||||
|
|
||||||
|
init() {
|
||||||
|
this._super(...arguments);
|
||||||
|
|
||||||
|
if (this.popupKey) {
|
||||||
|
const value = this.keyValueStore.getItem(this.popupKey);
|
||||||
|
if (value === true || value > +new Date()) {
|
||||||
|
this.set("hidden", true);
|
||||||
|
} else {
|
||||||
|
this.keyValueStore.removeItem(this.popupKey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
@discourseComputed("popupId")
|
||||||
|
popupKey(popupId) {
|
||||||
|
if (popupId) {
|
||||||
|
return `dismiss_topic_nav_popup_${popupId}`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
@action
|
@action
|
||||||
close() {
|
close() {
|
||||||
this.set("hidden", true);
|
this.set("hidden", true);
|
||||||
|
|
||||||
|
if (this.popupKey) {
|
||||||
|
if (this.dismissDuration) {
|
||||||
|
const expiry = +new Date() + this.dismissDuration;
|
||||||
|
this.keyValueStore.setItem(this.popupKey, expiry);
|
||||||
|
} else {
|
||||||
|
this.keyValueStore.setItem(this.popupKey, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -133,7 +133,9 @@
|
||||||
{{plugin-outlet name="above-timeline" connectorTagName="div"}}
|
{{plugin-outlet name="above-timeline" connectorTagName="div"}}
|
||||||
|
|
||||||
{{#topic-navigation class="topic-navigation" topic=model jumpToDate=(action "jumpToDate") jumpToIndex=(action "jumpToIndex") as |info|}}
|
{{#topic-navigation class="topic-navigation" topic=model jumpToDate=(action "jumpToDate") jumpToIndex=(action "jumpToIndex") as |info|}}
|
||||||
{{plugin-outlet name="topic-navigation" connectorTagName="div" args=(hash topic=model)}}
|
{{#unless site.mobileView}}
|
||||||
|
{{plugin-outlet name="topic-navigation" connectorTagName="div" args=(hash topic=model)}}
|
||||||
|
{{/unless}}
|
||||||
|
|
||||||
{{#if info.renderTimeline}}
|
{{#if info.renderTimeline}}
|
||||||
{{topic-timeline
|
{{topic-timeline
|
||||||
|
|
Loading…
Reference in New Issue