mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Add a button and a tooltip to Access Rules page item, in View-As mode.
Summary: - When in View-As mode, clicking the Access Rules page now shows a tooltip with a link to return to normal mode and open the Access Rules page. - A "revert" button is shown next to the item with the same behavior. - Implemented hoverTooltip() with various options. (It will have other uses.) - Simplify creation of links based on UrlState: - Allow merging with previous urlState using a function - Add a helper function to merge in aclAsUser parameter. - Add setHref() method to UrlState Test Plan: Added test cases: - for tooltips generally in test/projects - for updating UrlState using a callback - for Access Rules tooltip and button behavior Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D2749
This commit is contained in:
@@ -297,6 +297,23 @@ export function useNewUI(newui: boolean|undefined) {
|
||||
return newui !== false;
|
||||
}
|
||||
|
||||
// Returns a function suitable for user with makeUrl/setHref/etc, which updates aclAsUser*
|
||||
// linkParameters in the current state, unsetting them if email is null. Optional extraState
|
||||
// allows setting other properties (e.g. 'docPage') at the same time.
|
||||
export function userOverrideParams(email: string|null, extraState?: IGristUrlState) {
|
||||
return function(prevState: IGristUrlState): IGristUrlState {
|
||||
const combined = {...prevState, ...extraState};
|
||||
const linkParameters = combined.params?.linkParameters || {};
|
||||
if (email) {
|
||||
linkParameters.aclAsUser = email;
|
||||
} else {
|
||||
delete linkParameters.aclAsUser;
|
||||
}
|
||||
delete linkParameters.aclAsUserId;
|
||||
return {...combined, params: {...combined.params, linkParameters}};
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* parseDocPage is a noop if p is 'new' or 'code', otherwise parse to integer
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user