mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 02:18:33 +08:00
39f3dbd945
* renames `select-box-kit` into `select-kit` * introduces `single-select` and `multi-select` as base components * introduces {{search-advanced-category-chooser}} as a better component for selecting category in advanced search * improves events handling in select-kit * recreates color selection inputs using {{multi-select}} and a custom {{selected-color}} component * replaces category-selector by a component using select-kit and based on multi-select * improves positioning of wrapper * removes the need for offscreen, and instead use `select-kit-header` as a base focus point for all select-kit based components * introduces a formal plugin api for select-kit based components * introduces a formal pattern for loading and updating select-kit based components: ``` computeValue() computeContent() mutateValue() ```
46 lines
1003 B
JavaScript
46 lines
1003 B
JavaScript
import { CLOSE_STATUS_TYPE } from 'discourse/controllers/edit-topic-timer';
|
|
import { timeframeDetails } from 'select-kit/components/future-date-input-selector';
|
|
|
|
export default Ember.Mixin.create({
|
|
_computeIconsForValue(value) {
|
|
let {icon} = this._updateAt(value);
|
|
|
|
if (icon) {
|
|
return icon.split(",");
|
|
}
|
|
|
|
return [];
|
|
},
|
|
|
|
_computeDatetimeForValue(value) {
|
|
if (Ember.isNone(value)) {
|
|
return null;
|
|
}
|
|
|
|
let {time} = this._updateAt(value);
|
|
if (time) {
|
|
let details = timeframeDetails(value);
|
|
if (!details.displayWhen) {
|
|
time = null;
|
|
}
|
|
if (time && details.format) {
|
|
return time.format(details.format);
|
|
}
|
|
}
|
|
return time;
|
|
},
|
|
|
|
_updateAt(selection) {
|
|
let details = timeframeDetails(selection);
|
|
|
|
if (details) {
|
|
return {
|
|
time: details.when(moment(), this.get('statusType') !== CLOSE_STATUS_TYPE ? 8 : 18),
|
|
icon: details.icon
|
|
};
|
|
}
|
|
|
|
return { time: moment() };
|
|
},
|
|
});
|