mirror of
https://github.com/penpot/penpot.git
synced 2026-04-25 11:18:36 +00:00
🐛 Fix penpot.openPage() to navigate in same tab by default
- Change the default for the newWindow param from true to false, so openPage() navigates in the same tab instead of opening a new one - Accept a UUID string as the page argument in addition to a Page object, avoiding the need to call penpot.getPage(uuid) first - Add validation error when an invalid page argument is passed Signed-off-by: Andrey Antukh <niwi@niwi.nz>
This commit is contained in:
parent
ebd17974a6
commit
33c5f82c43
@ -41,6 +41,7 @@
|
|||||||
- Fix crash in select component when options vector is empty [Github #8578](https://github.com/penpot/penpot/pull/8578)
|
- Fix crash in select component when options vector is empty [Github #8578](https://github.com/penpot/penpot/pull/8578)
|
||||||
- Fix scroll on colorpicker [Taiga #13623](https://tree.taiga.io/project/penpot/issue/13623)
|
- Fix scroll on colorpicker [Taiga #13623](https://tree.taiga.io/project/penpot/issue/13623)
|
||||||
- Fix crash when pasting non-map transit clipboard data [Github #8580](https://github.com/penpot/penpot/pull/8580)
|
- Fix crash when pasting non-map transit clipboard data [Github #8580](https://github.com/penpot/penpot/pull/8580)
|
||||||
|
- Fix `penpot.openPage()` plugin API not navigating in the same tab; change default to same-tab navigation and allow passing a UUID string instead of a Page object [Github #8520](https://github.com/penpot/penpot/issues/8520)
|
||||||
|
|
||||||
## 2.13.3
|
## 2.13.3
|
||||||
|
|
||||||
|
|||||||
@ -540,9 +540,14 @@
|
|||||||
|
|
||||||
:openPage
|
:openPage
|
||||||
(fn [page new-window]
|
(fn [page new-window]
|
||||||
(let [id (obj/get page "$id")
|
(let [id (cond
|
||||||
new-window (if (boolean? new-window) new-window true)]
|
(page/page-proxy? page) (obj/get page "$id")
|
||||||
(st/emit! (dcm/go-to-workspace :page-id id ::rt/new-window new-window))))
|
(string? page) (uuid/parse* page)
|
||||||
|
:else nil)
|
||||||
|
new-window (if (boolean? new-window) new-window false)]
|
||||||
|
(if (nil? id)
|
||||||
|
(u/display-not-valid :openPage "Expected a Page object or a page UUID string")
|
||||||
|
(st/emit! (dcm/go-to-workspace :page-id id ::rt/new-window new-window)))))
|
||||||
|
|
||||||
:alignHorizontal
|
:alignHorizontal
|
||||||
(fn [shapes direction]
|
(fn [shapes direction]
|
||||||
|
|||||||
@ -269,7 +269,7 @@
|
|||||||
(u/display-not-valid :openPage "Plugin doesn't have 'content:read' permission")
|
(u/display-not-valid :openPage "Plugin doesn't have 'content:read' permission")
|
||||||
|
|
||||||
:else
|
:else
|
||||||
(let [new-window (if (boolean? new-window) new-window true)]
|
(let [new-window (if (boolean? new-window) new-window false)]
|
||||||
(st/emit! (dcm/go-to-workspace :page-id id ::rt/new-window new-window)))))
|
(st/emit! (dcm/go-to-workspace :page-id id ::rt/new-window new-window)))))
|
||||||
|
|
||||||
:createFlow
|
:createFlow
|
||||||
|
|||||||
6
plugins/libs/plugin-types/index.d.ts
vendored
6
plugins/libs/plugin-types/index.d.ts
vendored
@ -1256,15 +1256,15 @@ export interface Context {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Changes the current open page to given page. Requires `content:read` permission.
|
* Changes the current open page to given page. Requires `content:read` permission.
|
||||||
* @param page the page to open
|
* @param page the page to open (a Page object or a page UUID string)
|
||||||
* @param newWindow if true opens the page in a new window
|
* @param newWindow if true opens the page in a new window, defaults to false
|
||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
* ```js
|
* ```js
|
||||||
* context.openPage(page);
|
* context.openPage(page);
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
openPage(page: Page, newWindow?: boolean): void;
|
openPage(page: Page | string, newWindow?: boolean): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Aligning will move all the selected layers to a position relative to one
|
* Aligning will move all the selected layers to a position relative to one
|
||||||
|
|||||||
@ -336,9 +336,9 @@ export function createApi(
|
|||||||
return plugin.context.createPage();
|
return plugin.context.createPage();
|
||||||
},
|
},
|
||||||
|
|
||||||
openPage(page: Page, newWindow?: boolean): void {
|
openPage(page: Page | string, newWindow?: boolean): void {
|
||||||
checkPermission('content:read');
|
checkPermission('content:read');
|
||||||
plugin.context.openPage(page, newWindow ?? true);
|
plugin.context.openPage(page, newWindow ?? false);
|
||||||
},
|
},
|
||||||
|
|
||||||
alignHorizontal(
|
alignHorizontal(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user