mirror of
https://github.com/discourse/discourse.git
synced 2025-01-22 17:34:06 +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**
34 lines
748 B
JavaScript
34 lines
748 B
JavaScript
import selectKit from "helpers/select-kit-helper";
|
|
|
|
export function testSelectKitModule(moduleName, options = {}) {
|
|
moduleForComponent(`select-kit/${moduleName}`, {
|
|
integration: true,
|
|
beforeEach() {
|
|
this.set("subject", selectKit());
|
|
options.beforeEach && options.beforeEach.call(this);
|
|
},
|
|
afterEach() {
|
|
options.afterEach && options.afterEach.call(this);
|
|
}
|
|
});
|
|
}
|
|
|
|
export const DEFAULT_CONTENT = [
|
|
{ id: 1, name: "foo" },
|
|
{ id: 2, name: "bar" },
|
|
{ id: 3, name: "baz" }
|
|
];
|
|
|
|
export function setDefaultState(ctx, value, options = {}) {
|
|
const properties = Object.assign(
|
|
{
|
|
onChange: v => {
|
|
this.set("value", v);
|
|
}
|
|
},
|
|
options || {}
|
|
);
|
|
|
|
ctx.setProperties(properties);
|
|
}
|