From 26870f796ad4a3ef5d728c460382dfc981e5b2c5 Mon Sep 17 00:00:00 2001 From: Vangelis Tsoumenis Date: Mon, 9 Jan 2023 14:12:42 +0100 Subject: [PATCH] feat: adds dataAttributes to linkPressTargetToOnDOMLinkPressArgs in plugins-core (#45) formidable-webview/webshell has added dataAttributes to LinkPressTarget in September 2021. [1] This commit adds it to linkPressTargetToOnDOMLinkPressArgs so that data attributes on achor tags are available in onPress-handlers. [1] https://github.com/formidable-webview/webshell/commit/0a2c3e0044c78c8f55800c57c4f9d472b5af65c3 --- .../__tests__/linkPressTargetToOnDOMLinkPressArgs.test.ts | 6 ++++-- .../plugins-core/src/linkPressTargetToOnDOMLinkPressArgs.ts | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/plugins-core/src/__tests__/linkPressTargetToOnDOMLinkPressArgs.test.ts b/packages/plugins-core/src/__tests__/linkPressTargetToOnDOMLinkPressArgs.test.ts index ad53901..a1b3928 100644 --- a/packages/plugins-core/src/__tests__/linkPressTargetToOnDOMLinkPressArgs.test.ts +++ b/packages/plugins-core/src/__tests__/linkPressTargetToOnDOMLinkPressArgs.test.ts @@ -12,7 +12,8 @@ describe('linkPressTargetToOnDOMLinkPressArgs', () => { href: 'https://google.com/', hreflang: 'en', id: 'anchor03', - target: '_blank' + target: '_blank', + data: { custom: 'data' } }, '_blank' ]; @@ -31,7 +32,8 @@ describe('linkPressTargetToOnDOMLinkPressArgs', () => { relAttribute: null, targetAttribute: '_blank', typeAttribute: null, - uri: 'https://google.com/' + uri: 'https://google.com/', + dataAttributes: { custom: 'data' } }) ).toEqual(expectedOutput); }); diff --git a/packages/plugins-core/src/linkPressTargetToOnDOMLinkPressArgs.ts b/packages/plugins-core/src/linkPressTargetToOnDOMLinkPressArgs.ts index 6abe3b7..d1d80c0 100644 --- a/packages/plugins-core/src/linkPressTargetToOnDOMLinkPressArgs.ts +++ b/packages/plugins-core/src/linkPressTargetToOnDOMLinkPressArgs.ts @@ -19,7 +19,8 @@ export default function linkPressTargetToOnDOMLinkPressArgs({ nameAttribute, referrerpolicyAttribute, relAttribute, - typeAttribute + typeAttribute, + dataAttributes }: LinkPressTarget): Parameters['onPress']> { const attributes = { class: classAttribute, @@ -31,7 +32,8 @@ export default function linkPressTargetToOnDOMLinkPressArgs({ referrerpolicy: referrerpolicyAttribute, rel: relAttribute, type: typeAttribute, - target: targetAttribute + target: targetAttribute, + data: dataAttributes }; for (const name in attributes) { if (attributes[name] == null) {