为features增加了一个callback选项
This commit is contained in:
parent
c74faa0585
commit
4591e6754a
|
|
@ -705,20 +705,28 @@ export function createComponent(option, features) {
|
|||
}
|
||||
else {
|
||||
assert(typeof ele === 'object');
|
||||
const { feature, behavior } = ele;
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
const { feature, behavior, callback } = ele;
|
||||
if (behavior) {
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (callback) {
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
this.reRender();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -579,19 +579,27 @@ export function createComponent(option, features) {
|
|||
}
|
||||
else {
|
||||
assert(typeof ele === 'object');
|
||||
const { feature, behavior } = ele;
|
||||
const { feature, behavior, callback } = ele;
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
if (behavior) {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (callback) {
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
this.reRender();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ export type RowWithActions<ED extends EntityDict & BaseEntityDict, T extends key
|
|||
};
|
||||
type FeatureDef<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>> = (keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>)) | {
|
||||
feature: keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>);
|
||||
behavior: 'reRender' | 'refresh';
|
||||
behavior?: 'reRender' | 'refresh';
|
||||
callback?: () => void;
|
||||
};
|
||||
interface ComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> {
|
||||
isList?: IsList;
|
||||
|
|
|
|||
|
|
@ -708,20 +708,28 @@ function createComponent(option, features) {
|
|||
}
|
||||
else {
|
||||
(0, assert_1.assert)(typeof ele === 'object');
|
||||
const { feature, behavior } = ele;
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
const { feature, behavior, callback } = ele;
|
||||
if (behavior) {
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
(0, assert_1.assert)(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
default: {
|
||||
(0, assert_1.assert)(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (callback) {
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
this.reRender();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -584,19 +584,27 @@ function createComponent(option, features) {
|
|||
}
|
||||
else {
|
||||
(0, assert_1.assert)(typeof ele === 'object');
|
||||
const { feature, behavior } = ele;
|
||||
const { feature, behavior, callback } = ele;
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
(0, assert_1.assert)(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
if (behavior) {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
(0, assert_1.assert)(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (callback) {
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
this.reRender();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ export type RowWithActions<ED extends EntityDict & BaseEntityDict, T extends key
|
|||
};
|
||||
type FeatureDef<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>> = (keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>)) | {
|
||||
feature: keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>);
|
||||
behavior: 'reRender' | 'refresh';
|
||||
behavior?: 'reRender' | 'refresh';
|
||||
callback?: () => void;
|
||||
};
|
||||
interface ComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> {
|
||||
isList?: IsList;
|
||||
|
|
|
|||
|
|
@ -1045,20 +1045,28 @@ export function createComponent<
|
|||
this.addFeatureSub(ele, () => this.reRender());
|
||||
} else {
|
||||
assert(typeof ele === 'object');
|
||||
const { feature, behavior } = ele;
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
const { feature, behavior, callback } = ele;
|
||||
if (behavior) {
|
||||
this.addFeatureSub(feature, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
else if (callback) {
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
this.reRender();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -902,19 +902,27 @@ export function createComponent<
|
|||
}
|
||||
else {
|
||||
assert(typeof ele === 'object');
|
||||
const { feature, behavior } = ele;
|
||||
const { feature, behavior, callback } = ele;
|
||||
this.addFeatureSub(feature as string, () => {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
if (behavior) {
|
||||
switch (behavior) {
|
||||
case 'reRender': {
|
||||
this.reRender();
|
||||
return;
|
||||
}
|
||||
default: {
|
||||
assert(behavior === 'refresh');
|
||||
this.refresh();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (callback) {
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
this.reRender();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,8 @@ type FeatureDef<
|
|||
AD extends Record<string, Aspect<ED, Cxt>>,
|
||||
FD extends Record<string, Feature>> = (keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>)) | {
|
||||
feature: keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>);
|
||||
behavior: 'reRender' | 'refresh';
|
||||
behavior?: 'reRender' | 'refresh';
|
||||
callback?: () => void;
|
||||
};
|
||||
|
||||
interface ComponentOption<
|
||||
|
|
|
|||
Loading…
Reference in New Issue