mirror of
https://github.com/discourse/discourse.git
synced 2024-12-05 11:33:43 +08:00
0431942f3d
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**
39 lines
990 B
JavaScript
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);
|
|
}
|
|
}
|
|
}
|
|
});
|