Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(framework): Deprecate RenderScheduler in favor of Render.js #2728

Merged
merged 8 commits into from
Feb 1, 2021
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
rename whenFinished to renderFinished
  • Loading branch information
vladitasev committed Jan 29, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 45257bd97bc63a4153ebbe2561291e890ff91276
4 changes: 2 additions & 2 deletions packages/base/bundle.esm.js
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@ import "./dist/test-resources/elements/GenericExt.js";
import "./dist/test-resources/assets/Themes.js";

// used in test pages
import { whenFinished } from "./dist/Render.js";
import { renderFinished } from "./dist/Render.js";
import { isIE } from "./dist/Device.js";
window.isIE = isIE; // attached to the window object for testing purposes

@@ -51,5 +51,5 @@ window["sap-ui-webcomponents-bundle"] = {
registerI18nBundle,
fetchI18nBundle,
getI18nBundle,
whenFinished,
renderFinished,
};
6 changes: 3 additions & 3 deletions packages/base/src/Render.js
Original file line number Diff line number Diff line change
@@ -110,7 +110,7 @@ const whenAllCustomElementsAreDefined = () => {
return Promise.all(definedPromises);
};

const whenFinished = async () => {
const renderFinished = async () => {
await whenAllCustomElementsAreDefined();
await whenDOMUpdated();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not related to this change, but I think we should improve this with a loop, as the DOM Update promise might result in more undefined custom elements.

};
@@ -152,7 +152,7 @@ const reRenderAllUI5Elements = async filters => {
renderDeferred(element);
}
});
await whenFinished();
await renderFinished();
};

const attachBeforeComponentRender = listener => {
@@ -167,7 +167,7 @@ export {
renderDeferred,
renderImmediately,
cancelRender,
whenFinished,
renderFinished,
reRenderAllUI5Elements,
attachBeforeComponentRender,
detachBeforeComponentRender,
9 changes: 6 additions & 3 deletions packages/base/src/RenderScheduler.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {
renderDeferred,
renderImmediately,
whenFinished,
renderFinished,
} from "./Render.js";

/**
@@ -16,6 +16,7 @@ class RenderScheduler {
* @deprecated Use renderDeferred from the Render.js module instead
*/
static async renderDeferred(webComponent) {
console.log("RenderScheduler.renderDeferred is deprecated, please use renderDeferred, exported by Render.js instead"); // eslint-disable-line
await renderDeferred(webComponent);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add a warning in the console, otherwise it is too easy to miss.

}

@@ -26,15 +27,17 @@ class RenderScheduler {
* @deprecated Use renderImmediately from the Render.js module instead
*/
static renderImmediately(webComponent) {
console.log("RenderScheduler.renderImmediately is deprecated, please use renderImmediately, exported by Render.js instead"); // eslint-disable-line
return renderImmediately(webComponent);
}

/**
* @deprecated Use whenFinished from the Render.js module instead
* @deprecated Use renderFinished from the Render.js module instead
* @returns {Promise<void>}
*/
static async whenFinished() {
await whenFinished();
console.log("RenderScheduler.whenFinished is deprecated, please use renderFinished, exported by Render.js instead"); // eslint-disable-line
await renderFinished();
}
}

4 changes: 2 additions & 2 deletions packages/base/src/StaticAreaItem.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import updateShadowRoot from "./updateShadowRoot.js";
import { whenFinished } from "./Render.js";
import { renderFinished } from "./Render.js";
import getEffectiveContentDensity from "./util/getEffectiveContentDensity.js";

/**
@@ -59,7 +59,7 @@ class StaticAreaItem extends HTMLElement {
this._rendered = true;
updateShadowRoot(this.ownerElement, true);
}
await whenFinished(); // Wait for the content of the ui5-static-area-item to be rendered
await renderFinished(); // Wait for the content of the ui5-static-area-item to be rendered
return this.shadowRoot;
}

4 changes: 2 additions & 2 deletions packages/base/src/delegate/ItemNavigation.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { whenFinished } from "../Render.js";
import { renderFinished } from "../Render.js";
import {
isDown,
isUp,
@@ -109,7 +109,7 @@ class ItemNavigation extends EventProvider {

event.preventDefault();

await whenFinished();
await renderFinished();

this.update();
this.focusCurrent();
30 changes: 15 additions & 15 deletions packages/base/test/specs/UI5ElementInvalidation.js
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ describe("Invalidation works", () => {
el.strProp = "new value";
el.boolProp = true;

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidations);
});
@@ -34,7 +34,7 @@ describe("Invalidation works", () => {

const el = document.getElementById("gen");
el.strProp = text;
await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

let invalidations = 0;

@@ -44,7 +44,7 @@ describe("Invalidation works", () => {

el.strProp = text;

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidations);
});
@@ -60,7 +60,7 @@ describe("Invalidation works", () => {

const el = document.getElementById("gen");
el.objectProp = obj;
await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

let invalidations = 0;

@@ -70,7 +70,7 @@ describe("Invalidation works", () => {

el.objectProp = otherObj;

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidations);
});
@@ -86,7 +86,7 @@ describe("Invalidation works", () => {

const el = document.getElementById("gen");
el.multiProp = arr;
await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

let invalidations = 0;

@@ -96,7 +96,7 @@ describe("Invalidation works", () => {

el.multiProp = otherArr;

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidations);
});
@@ -120,7 +120,7 @@ describe("Invalidation works", () => {
const div = document.createElement("div");
el.appendChild(div);

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidated);
});
@@ -136,7 +136,7 @@ describe("Invalidation works", () => {
const div = document.createElement("div");
el.appendChild(div);

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

let invalidated = false;

@@ -146,7 +146,7 @@ describe("Invalidation works", () => {

el.removeChild(div);

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidated);
});
@@ -160,7 +160,7 @@ describe("Invalidation works", () => {

const el = document.getElementById("gen");
el.textContent = "test";
await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

// Number of invalidations may vary with children/slots count, so just check for invalidation
let invalidated = false;
@@ -171,7 +171,7 @@ describe("Invalidation works", () => {

el.textContent = "test2";

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidated);
});
@@ -185,7 +185,7 @@ describe("Invalidation works", () => {

const el = document.getElementById("gen");
el.textContent = "test";
await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

// Number of invalidations may vary with children/slots count, so just check for invalidation
let invalidated = false;
@@ -196,7 +196,7 @@ describe("Invalidation works", () => {

el.childNodes[0].nodeValue = "test2";

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(invalidated);
});
@@ -228,7 +228,7 @@ describe("Invalidation works", () => {
el.strProp = "new";
el.strProp = "newer";

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(operations);
});
10 changes: 5 additions & 5 deletions packages/base/test/specs/UI5ElementLifecycle.js
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ describe("Lifecycle works", () => {
});

document.body.appendChild(el);
await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(calledCallbacks);
});
@@ -40,7 +40,7 @@ describe("Lifecycle works", () => {
const el = document.createElement("ui5-test-generic");
document.body.appendChild(el);

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

el.strProp = "some string";

@@ -52,7 +52,7 @@ describe("Lifecycle works", () => {
};
});

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(calledCallbacks);
});
@@ -80,11 +80,11 @@ describe("Lifecycle works", () => {

document.body.appendChild(el);

await window["sap-ui-webcomponents-bundle"].whenFinished(); // Must wait, otherwise onExitDOM won't be called
await window["sap-ui-webcomponents-bundle"].renderFinished(); // Must wait, otherwise onExitDOM won't be called

document.body.removeChild(el);

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(calledCallbacks);
});
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ describe("Metadata slot invalidateOnChildChange works", () => {

child.prop1 = "a"; // child1(default slot) prop1 -> invalidates

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(parentInvalidated);
});
@@ -39,7 +39,7 @@ describe("Metadata slot invalidateOnChildChange works", () => {

child.prop2 = "b"; // child1(default slot) prop 2 -> does not

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(parentInvalidated);
});
@@ -63,7 +63,7 @@ describe("Metadata slot invalidateOnChildChange works", () => {
child.prop2 = "c";
child.prop3 = "c";

await window["sap-ui-webcomponents-bundle"].whenFinished();
await window["sap-ui-webcomponents-bundle"].renderFinished();

return done(parentInvalidatedCount);
});
4 changes: 2 additions & 2 deletions packages/fiori/src/UploadCollectionItem.js
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ import ProgressIndicator from "@ui5/webcomponents/dist/ProgressIndicator.js";
import ListItem from "@ui5/webcomponents/dist/ListItem.js";
import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
import getFileExtension from "@ui5/webcomponents-base/dist/util/getFileExtension.js";
import { whenFinished } from "@ui5/webcomponents-base/dist/Render.js";
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
import { isEnter, isEscape, isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
import UploadState from "./types/UploadState.js";
import "@ui5/webcomponents-icons/dist/refresh.js";
@@ -286,7 +286,7 @@ class UploadCollectionItem extends ListItem {

const inp = this.shadowRoot.getElementById("ui5-uci-edit-input");

await whenFinished();
await renderFinished();
if (inp.getFocusDomRef()) {
inp.getFocusDomRef().setSelectionRange(0, this._fileNameWithoutExtension.length);
}
4 changes: 2 additions & 2 deletions packages/main/bundle.esm.js
Original file line number Diff line number Diff line change
@@ -91,7 +91,7 @@ import CustomListItem from "./dist/CustomListItem.js";
import GroupHeaderListItem from "./dist/GroupHeaderListItem.js";

// used in test pages
import { whenFinished } from "@ui5/webcomponents-base/dist/Render.js";
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
import { isIE } from "@ui5/webcomponents-base/dist/Device.js";
window.isIE = isIE; // attached to the window object for testing purposes

@@ -128,7 +128,7 @@ const testAssets = {
attachThemeLoaded,
detachThemeLoaded,
getIconNames,
whenFinished,
renderFinished,
};

window["sap-ui-webcomponents-bundle"] = testAssets;
4 changes: 2 additions & 2 deletions packages/main/src/Calendar.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
import { whenFinished } from "@ui5/webcomponents-base/dist/Render.js";
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
import {
isF4,
isF4Shift,
@@ -236,7 +236,7 @@ class Calendar extends CalendarPart {
}

async onAfterRendering() {
await whenFinished(); // Await for the current picker to render and then ask if it has previous/next pages
await renderFinished(); // Await for the current picker to render and then ask if it has previous/next pages
this._previousButtonDisabled = !this._currentPickerDOM._hasPreviousPage();
this._nextButtonDisabled = !this._currentPickerDOM._hasNextPage();
}
6 changes: 3 additions & 3 deletions packages/main/src/DateRangePicker.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { whenFinished } from "@ui5/webcomponents-base/dist/Render.js";
import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
import CalendarDate from "@ui5/webcomponents-localization/dist/dates/CalendarDate.js";
import modifyDateBy from "@ui5/webcomponents-localization/dist/dates/modifyDateBy.js";
import getTodayUTCTimestamp from "@ui5/webcomponents-localization/dist/dates/getTodayUTCTimestamp.js";
@@ -156,7 +156,7 @@ class DateRangePicker extends DatePicker {
async _onInputSubmit(event) {
const input = this._getInput();
const caretPos = input.getCaretPosition();
await whenFinished();
await renderFinished();
input.setCaretPosition(caretPos); // Return the caret on the previous position after rendering
}

@@ -240,7 +240,7 @@ class DateRangePicker extends DatePicker {
}
this._updateValueAndFireEvents(newValue, true, ["change", "value-changed"]);

await whenFinished();
await renderFinished();
input.setCaretPosition(caretPos); // Return the caret to the previous (or the adjusted, if dates flipped) position after rendering
}

Loading