discourse/app/assets/javascripts/select-kit/components/period-chooser.js.es6
Joffrey JAFFEUX 0431942f3d
DEV: select-kit 2 (#7998)
This new iteration of select-kit focuses on following best principales and disallowing mutations inside select-kit components. A best effort has been made to avoid breaking changes, however if you content was a flat array, eg: ["foo", "bar"] You will need to set valueProperty=null and nameProperty=null on the component.

Also almost every component should have an `onChange` handler now to decide what to do with the updated data. **select-kit will not mutate your data by itself anymore**
2020-02-03 14:22:14 +01:00

39 lines
990 B
JavaScript

import { oneWay, readOnly } from "@ember/object/computed";
import DropdownSelectBoxComponent from "select-kit/components/dropdown-select-box";
import discourseComputed from "discourse-common/utils/decorators";
export default DropdownSelectBoxComponent.extend({
classNames: ["period-chooser"],
content: oneWay("site.periods"),
value: readOnly("period"),
isVisible: readOnly("showPeriods"),
valueProperty: null,
nameProperty: null,
modifyComponentForRow() {
return "period-chooser/period-chooser-row";
},
@discourseComputed("isExpanded")
caretIcon(isExpanded) {
return isExpanded ? "caret-up" : "caret-down";
},
selectKitOptions: {
filterable: false,
autoFilterable: false,
fullDay: "fullDay",
headerComponent: "period-chooser/period-chooser-header"
},
actions: {
onChange(value) {
if (this.action) {
this.action(value);
} else {
this.attrs.onChange && this.attrs.onChange(value);
}
}
}
});