feat: maintains column state in url (#11387)
Maintains column state in the URL. This makes it possible to share direct links to the list view in a specific column order or active column state, similar to the behavior of filters. This also makes it possible to change both the filters and columns in the same rendering cycle, a requirement of the "list presets" feature being worked on here: #11330. For example: ``` ?columns=%5B"title"%2C"content"%2C"-updatedAt"%2C"createdAt"%2C"id"%5D ``` The `-` prefix denotes that the column is inactive. This strategy performs a single round trip to the server, ultimately simplifying the table columns provider as it no longer needs to request a newly rendered table for itself. Without this change, column state would need to be replaced first, followed by a change to the filters. This would make an unnecessary number of requests to the server and briefly render the UI in a stale state. This all happens behind an optimistic update, where the state of the columns is immediately reflected in the UI while the request takes place in the background. Technically speaking, an additional database query in performed compared to the old strategy, whereas before we'd send the data through the request to avoid this. But this is a necessary tradeoff and doesn't have huge performance implications. One could argue that this is actually a good thing, as the data might have changed in the background which would not have been reflected in the result otherwise.
This commit is contained in:
@@ -861,7 +861,7 @@ describe('Versions', () => {
|
||||
const publishOptions = page.locator('.doc-controls__controls .popup')
|
||||
await publishOptions.click()
|
||||
|
||||
const publishSpecificLocale = page.locator('.popup-button-list button').first()
|
||||
const publishSpecificLocale = page.locator('#publish-locale')
|
||||
await expect(publishSpecificLocale).toContainText('English')
|
||||
await publishSpecificLocale.click()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user