mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
(core) Disable tips during tutorials
Summary: Behavioral tips shouldn't be shown during tutorials. Test Plan: Browser test. Reviewers: jarek Reviewed By: jarek Differential Revision: https://phab.getgrist.com/D3842
This commit is contained in:
parent
5b2fb62627
commit
0006e0604b
@ -35,6 +35,8 @@ interface QueuedTip {
|
||||
* Tips are shown in the order that they are attached.
|
||||
*/
|
||||
export class BehavioralPromptsManager extends Disposable {
|
||||
private _isDisabled: boolean = false;
|
||||
|
||||
private readonly _prefs = getUserPrefObs(this._appModel.userPrefsObs, 'behavioralPrompts',
|
||||
{ defaultValue: { dontShowTips: false, dismissedTips: [] } }) as Observable<BehavioralPromptPrefs>;
|
||||
|
||||
@ -67,8 +69,17 @@ export class BehavioralPromptsManager extends Disposable {
|
||||
return !this._prefs.get().dontShowTips;
|
||||
}
|
||||
|
||||
public enable() {
|
||||
this._isDisabled = false;
|
||||
}
|
||||
|
||||
public disable() {
|
||||
this._isDisabled = true;
|
||||
}
|
||||
|
||||
private _queueTip(refElement: Element, prompt: BehavioralPrompt, options: AttachOptions) {
|
||||
if (
|
||||
this._isDisabled ||
|
||||
// Don't show tips if surveying is disabled.
|
||||
// TODO: Move this into a dedicated variable - this is only a short-term fix for hiding
|
||||
// tips in grist-core.
|
||||
|
@ -332,6 +332,10 @@ export class GristDoc extends DisposableWithEvents {
|
||||
}
|
||||
}));
|
||||
|
||||
if (this.docModel.isTutorial()) {
|
||||
this.behavioralPromptsManager.disable();
|
||||
}
|
||||
|
||||
let isStartingTourOrTutorial = false;
|
||||
this.autoDispose(subscribe(urlState().state, async (_use, state) => {
|
||||
// Only start a tour or tutorial when the full interface is showing, i.e. not when in
|
||||
|
@ -53,7 +53,7 @@ describe('DocTutorial', function () {
|
||||
let forkUrl: string;
|
||||
|
||||
before(async () => {
|
||||
session = await gu.session().teamSite.user('user1').login();
|
||||
session = await gu.session().teamSite.user('user1').login({showTips: true});
|
||||
});
|
||||
|
||||
afterEach(() => gu.checkForErrors());
|
||||
@ -124,6 +124,13 @@ describe('DocTutorial', function () {
|
||||
/GristDocTutorial/).isPresent());
|
||||
});
|
||||
|
||||
it('does not show behavioral tips', async function() {
|
||||
await gu.openPage('Page 1');
|
||||
await gu.openAddWidgetToPage();
|
||||
assert.equal(await driver.find('.test-behavioral-prompt').isPresent(), false);
|
||||
await gu.sendKeys(Key.ESCAPE);
|
||||
});
|
||||
|
||||
it('only allows users access to their own forks', async function() {
|
||||
const otherSession = await gu.session().teamSite.user('user2').login();
|
||||
await driver.navigate().to(forkUrl);
|
||||
|
Loading…
Reference in New Issue
Block a user