Skip to content

Commit

Permalink
fix date/datetime not rerendering
Browse files Browse the repository at this point in the history
  • Loading branch information
ada-x64 committed Jan 19, 2024
1 parent 5bf5695 commit 8c0547e
Show file tree
Hide file tree
Showing 7 changed files with 65 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -153,14 +153,17 @@ impl Component for DatetimeColumnStyle {
}

// Always re-render when config changes.
fn changed(&mut self, ctx: &Context<Self>, _old: &Self::Properties) -> bool {
fn changed(&mut self, ctx: &Context<Self>, old: &Self::Properties) -> bool {
let mut rerender = false;
let mut new_config = ctx.props().config.clone().unwrap_or_default();
if self.config != new_config {
std::mem::swap(&mut self.config, &mut new_config);
true
} else {
false
rerender = true;
}
if old.enable_time_config != ctx.props().enable_time_config {
rerender = true;
}
rerender
}

// TODO could be more conservative here with re-rendering
Expand Down
2 changes: 1 addition & 1 deletion rust/perspective-viewer/test/js/column_settings.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ test.describe("Plugin Styles", () => {

await settingsPanel.createNewExpression("expr", "'string'");
await activeColumns.activateColumn("expr");
let col = activeColumns.getColumnByName("expr");
let col = await activeColumns.getColumnByName("expr");
await inactiveColumns.container.waitFor({ state: "hidden" });
await activeColumns.scrollToBottom();
await view.assureColumnSettingsOpen(col);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ test.describe("Attributes Tab", () => {
expressions: { expr: "12345" },
columns: ["expr"],
});
let expr = view.settingsPanel.activeColumns.getColumnByName("expr");
let expr = await view.settingsPanel.activeColumns.getColumnByName(
"expr"
);
await expr.editBtn.click();

let input = view.columnSettingsSidebar.nameInput;
Expand Down Expand Up @@ -77,7 +79,9 @@ test.describe("Attributes Tab", () => {
columns: ["expr", "Row ID"],
settings: true,
});
let expr = view.settingsPanel.activeColumns.getColumnByName("expr");
let expr = await view.settingsPanel.activeColumns.getColumnByName(
"expr"
);
await expr.editBtn.click();
await view.columnSettingsSidebar.openTab("Attributes");
let input = view.columnSettingsSidebar.nameInput;
Expand All @@ -97,7 +101,9 @@ test.describe("Attributes Tab", () => {
columns: ["expr", "Row ID"],
settings: true,
});
let expr = view.settingsPanel.activeColumns.getColumnByName("expr");
let expr = await view.settingsPanel.activeColumns.getColumnByName(
"expr"
);
await expr.editBtn.click();
await view.columnSettingsSidebar.openTab("Attributes");

Expand Down Expand Up @@ -130,7 +136,9 @@ test.describe("Attributes Tab", () => {
columns: ["expr", "Row ID"],
settings: true,
});
let expr = view.settingsPanel.activeColumns.getColumnByName("expr");
let expr = await view.settingsPanel.activeColumns.getColumnByName(
"expr"
);
await expr.editBtn.click();
await view.columnSettingsSidebar.openTab("Attributes");
let attributesTab = view.columnSettingsSidebar.attributesTab;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ async function open(
}, viewer_settings);

let selector = active
? view.settingsPanel.activeColumns.getColumnByName(
? await view.settingsPanel.activeColumns.getColumnByName(
expr ? expr_name : view_columns[0]
)
: expr
Expand Down Expand Up @@ -553,10 +553,40 @@ test.describe("Unique Behaviors", () => {
plugin: "X/Y Scatter",
columns: ["Row ID", "Postal Code", null, null, "Category"],
});
let col = view.settingsPanel.activeColumns.getColumnByName("Category");
let col = await view.settingsPanel.activeColumns.getColumnByName(
"Category"
);
await col.editBtn.click();
await expect(view.columnSettingsSidebar.container).toBeVisible();
view.settingsPanel.groupby("City");
await expect(view.columnSettingsSidebar.container).toBeHidden();
});

test("Datagrid - switching between date and datetime should rerender", async ({
page,
}) => {
const view = new PageView(page);
await view.restore({
settings: true,
plugin: "Datagrid",
columns: ["date", "datetime"],
expressions: { date: "date(0,0,0)", datetime: "now()" },
});
const date = await view.settingsPanel.activeColumns.getColumnByName(
"date",
true
);
await date.editBtn.click();
await view.columnSettingsSidebar.openTab("style");
const dateSnapshot =
await view.columnSettingsSidebar.styleTab.container.innerHTML();
const datetime = await view.settingsPanel.activeColumns.getColumnByName(
"datetime",
true
);
await datetime.editBtn.click();
const datetimeSnapshot =
await view.columnSettingsSidebar.styleTab.container.innerHTML();
expect(datetimeSnapshot).not.toEqual(dateSnapshot);
});
});
Binary file modified tools/perspective-test/results.tar.gz
Binary file not shown.
2 changes: 1 addition & 1 deletion tools/perspective-test/src/js/models/page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ export class PageView {
}
await this.settingsPanel.createNewExpression("expr", expr, true);
await settingsPanel.activeColumns.activateColumn("expr");
col = settingsPanel.activeColumns.getColumnByName("expr");
col = await settingsPanel.activeColumns.getColumnByName("expr");
}
await expect(col.container).toBeVisible();
return col;
Expand Down
14 changes: 12 additions & 2 deletions tools/perspective-test/src/js/models/settings_panel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,10 +241,20 @@ export class ActiveColumns {
return new ColumnSelector(this.columnSelector.first(), true);
}

getColumnByName(name: string) {
let locator = this.columnSelector.filter({
async getColumnByName(name: string, exact: boolean = false) {
let locators = this.columnSelector.filter({
hasText: name,
});

let locator: Locator;
if (exact) {
locator = (await locators.all()).filter(
async (l) => (await l.innerText()) === name
)[0];
} else {
locator = locators.first();
}

return new ColumnSelector(locator, true);
}

Expand Down

0 comments on commit 8c0547e

Please sign in to comment.