File tree Expand file tree Collapse file tree 1 file changed +22
-13
lines changed Expand file tree Collapse file tree 1 file changed +22
-13
lines changed Original file line number Diff line number Diff line change 2626 $ : resetSelected (schemas );
2727 $ : resetData (selected , type );
2828
29+ function isObjSchema() {
30+ return isObjectSchema ({ type: selected ?.type ?? type });
31+ }
32+
2933 function getKey(schema : JSONSchema7 ) {
3034 return keys .get (schema ) ?? " " ;
3135 }
5054 }
5155
5256 async function resetData(selected : JSONSchema7 | null , type : JSONSchema7 [' type' ]) {
53- if (isObjectSchema ({ type: selected ?.type ?? type })) {
54- if (selectedProps ) {
55- const omitted = omit (data , selectedProps );
56- // make sure it's changed (to prevent infinite loop)
57- if (Object .keys (data ).length != Object .keys (omitted ).length ) {
58- await tick ();
59- data = omitted ;
60- }
57+ let newData = data ;
58+ if (isObjSchema () && (selected != null )) {
59+ if (selectedProps && data ) {
60+ newData = omit (data , selectedProps , { keepUnchanged: true });
6161 }
6262 else if ((data == null ) || ! isEmpty (data )) {
63- await tick ();
64- data = {};
63+ newData = {};
6564 }
66- selectedProps = Object .keys (selected ?.properties ?? {})
6765 }
6866 else {
69- if (data != null ) data = undefined ;
70- if (selectedProps != null ) selectedProps = undefined ;
67+ newData = undefined ;
68+ }
69+ if (newData !== data ) {
70+ await tick ();
71+ data = newData ;
72+ }
73+ resetSelectedProps ();
74+ }
75+
76+ function resetSelectedProps() {
77+ const newSelectedProps = isObjSchema () ? Object .keys (selected ?.properties ?? {}) : undefined ;
78+ if (newSelectedProps !== selectedProps ) {
79+ selectedProps = newSelectedProps ;
7180 }
7281 }
7382 </script >
You can’t perform that action at this time.
0 commit comments