Skip to content

Commit

Permalink
[LinkPlugin] Allows pasting email links from clipboard (#2444)
Browse files Browse the repository at this point in the history
* [LinkPlugin] allow pasting email links

* [LinkPlugin] apply lock file updates

* Create smooth-beds-kneel.md

---------

Co-authored-by: Ziad Beyens <ziad.beyens@gmail.com>
  • Loading branch information
dimaanj and zbeyens authored Jun 27, 2023
1 parent 2ba380d commit 8d0c872
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 18 deletions.
5 changes: 5 additions & 0 deletions .changeset/smooth-beds-kneel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@udecode/utils": patch
---

`isUrl`: support email urls
8 changes: 8 additions & 0 deletions packages/utils/src/isUrl.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@ describe('is-url', () => {
it('http://localhost:342/a/path', () => {
expect(isUrl('http://localhost:342/a/path')).toBeTruthy();
});

it('mailto:sample-mail@gmail.com', () => {
expect(isUrl('mailto:sample-mail@gmail.com')).toBeTruthy();
});
});

describe('invalid', () => {
Expand Down Expand Up @@ -132,6 +136,10 @@ describe('is-url', () => {
it('re', () => {
expect(!isUrl(/abc/)).toBeTruthy();
});

it('mailto:', () => {
expect(!isUrl('mailto:')).toBeTruthy();
});
});

describe('redos', () => {
Expand Down
6 changes: 5 additions & 1 deletion packages/utils/src/isUrl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*/

const protocolAndDomainRE = /^(?:\w+:)?\/\/(\S+)$/;
const emailLintRE = /mailto:([^\\?]+)/;

const localhostDomainRE = /^localhost[:?\d]*(?:[^:?\d]\S*)?$/;
const nonLocalhostDomainRE = /^[^\s.]+\.\S{2,}$/;
Expand All @@ -17,7 +18,10 @@ export const isUrl = (string: any) => {
return false;
}

const match = string.match(protocolAndDomainRE);
const generalMatch = string.match(protocolAndDomainRE);
const emailLinkMatch = string.match(emailLintRE);

const match = generalMatch || emailLinkMatch;
if (!match) {
return false;
}
Expand Down
34 changes: 17 additions & 17 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6792,7 +6792,7 @@ __metadata:
languageName: unknown
linkType: soft

"@udecode/plate-headless@npm:21.3.5, @udecode/plate-headless@workspace:packages/headless":
"@udecode/plate-headless@npm:21.4.0, @udecode/plate-headless@workspace:packages/headless":
version: 0.0.0-use.local
resolution: "@udecode/plate-headless@workspace:packages/headless"
dependencies:
Expand All @@ -6818,7 +6818,7 @@ __metadata:
"@udecode/plate-indent-list": "npm:21.3.2"
"@udecode/plate-kbd": "npm:21.3.2"
"@udecode/plate-line-height": "npm:21.3.2"
"@udecode/plate-link": "npm:21.3.2"
"@udecode/plate-link": "npm:21.4.0"
"@udecode/plate-list": "npm:21.3.2"
"@udecode/plate-media": "npm:21.3.4"
"@udecode/plate-mention": "npm:21.3.5"
Expand All @@ -6830,7 +6830,7 @@ __metadata:
"@udecode/plate-serializer-csv": "npm:21.3.4"
"@udecode/plate-serializer-docx": "npm:21.3.4"
"@udecode/plate-serializer-html": "npm:21.3.2"
"@udecode/plate-serializer-md": "npm:21.3.2"
"@udecode/plate-serializer-md": "npm:21.4.0"
"@udecode/plate-suggestion": "npm:21.3.2"
"@udecode/plate-tabbable": "npm:21.3.2"
"@udecode/plate-table": "npm:21.3.4"
Expand Down Expand Up @@ -6947,7 +6947,7 @@ __metadata:
languageName: unknown
linkType: soft

"@udecode/plate-link@npm:21.3.2, @udecode/plate-link@workspace:packages/nodes/link":
"@udecode/plate-link@npm:21.4.0, @udecode/plate-link@workspace:packages/nodes/link":
version: 0.0.0-use.local
resolution: "@udecode/plate-link@workspace:packages/nodes/link"
dependencies:
Expand Down Expand Up @@ -7153,15 +7153,15 @@ __metadata:
languageName: unknown
linkType: soft

"@udecode/plate-serializer-md@npm:21.3.2, @udecode/plate-serializer-md@workspace:packages/serializers/md":
"@udecode/plate-serializer-md@npm:21.4.0, @udecode/plate-serializer-md@workspace:packages/serializers/md":
version: 0.0.0-use.local
resolution: "@udecode/plate-serializer-md@workspace:packages/serializers/md"
dependencies:
"@udecode/plate-block-quote": "npm:21.3.2"
"@udecode/plate-code-block": "npm:21.3.2"
"@udecode/plate-common": "npm:21.3.2"
"@udecode/plate-heading": "npm:21.3.2"
"@udecode/plate-link": "npm:21.3.2"
"@udecode/plate-link": "npm:21.4.0"
"@udecode/plate-list": "npm:21.3.2"
"@udecode/plate-paragraph": "npm:21.3.2"
remark-parse: "npm:^9.0.0"
Expand Down Expand Up @@ -7531,12 +7531,12 @@ __metadata:
languageName: unknown
linkType: soft

"@udecode/plate-ui-link@npm:21.3.5, @udecode/plate-ui-link@workspace:packages/ui/nodes/link":
"@udecode/plate-ui-link@npm:21.4.0, @udecode/plate-ui-link@workspace:packages/ui/nodes/link":
version: 0.0.0-use.local
resolution: "@udecode/plate-ui-link@workspace:packages/ui/nodes/link"
dependencies:
"@udecode/plate-common": "npm:21.3.2"
"@udecode/plate-link": "npm:21.3.2"
"@udecode/plate-link": "npm:21.4.0"
"@udecode/plate-styled-components": "npm:21.3.2"
"@udecode/plate-ui-button": "npm:21.3.5"
"@udecode/plate-ui-toolbar": "npm:21.3.5"
Expand Down Expand Up @@ -7568,16 +7568,16 @@ __metadata:
languageName: unknown
linkType: soft

"@udecode/plate-ui-media@npm:21.3.5, @udecode/plate-ui-media@workspace:packages/ui/nodes/media":
"@udecode/plate-ui-media@npm:21.4.0, @udecode/plate-ui-media@workspace:packages/ui/nodes/media":
version: 0.0.0-use.local
resolution: "@udecode/plate-ui-media@workspace:packages/ui/nodes/media"
dependencies:
"@udecode/plate-common": "npm:21.3.2"
"@udecode/plate-floating": "npm:21.3.2"
"@udecode/plate-link": "npm:21.3.2"
"@udecode/plate-link": "npm:21.4.0"
"@udecode/plate-media": "npm:21.3.4"
"@udecode/plate-styled-components": "npm:21.3.2"
"@udecode/plate-ui-link": "npm:21.3.5"
"@udecode/plate-ui-link": "npm:21.4.0"
"@udecode/plate-ui-toolbar": "npm:21.3.5"
js-video-url-parser: "npm:0.5.1"
peerDependencies:
Expand Down Expand Up @@ -7665,11 +7665,11 @@ __metadata:
languageName: unknown
linkType: soft

"@udecode/plate-ui@npm:21.3.5, @udecode/plate-ui@workspace:packages/ui/plate":
"@udecode/plate-ui@npm:21.4.0, @udecode/plate-ui@workspace:packages/ui/plate":
version: 0.0.0-use.local
resolution: "@udecode/plate-ui@workspace:packages/ui/plate"
dependencies:
"@udecode/plate-headless": "npm:21.3.5"
"@udecode/plate-headless": "npm:21.4.0"
"@udecode/plate-styled-components": "npm:21.3.2"
"@udecode/plate-ui-alignment": "npm:21.3.5"
"@udecode/plate-ui-block-quote": "npm:21.3.2"
Expand All @@ -7682,9 +7682,9 @@ __metadata:
"@udecode/plate-ui-find-replace": "npm:21.3.5"
"@udecode/plate-ui-font": "npm:21.3.5"
"@udecode/plate-ui-line-height": "npm:21.3.5"
"@udecode/plate-ui-link": "npm:21.3.5"
"@udecode/plate-ui-link": "npm:21.4.0"
"@udecode/plate-ui-list": "npm:21.3.5"
"@udecode/plate-ui-media": "npm:21.3.5"
"@udecode/plate-ui-media": "npm:21.4.0"
"@udecode/plate-ui-mention": "npm:21.3.5"
"@udecode/plate-ui-placeholder": "npm:21.3.2"
"@udecode/plate-ui-table": "npm:21.3.5"
Expand Down Expand Up @@ -7726,8 +7726,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "@udecode/plate@workspace:packages/plate"
dependencies:
"@udecode/plate-headless": "npm:21.3.5"
"@udecode/plate-ui": "npm:21.3.5"
"@udecode/plate-headless": "npm:21.4.0"
"@udecode/plate-ui": "npm:21.4.0"
peerDependencies:
react: ">=16.8.0"
react-dom: ">=16.8.0"
Expand Down

2 comments on commit 8d0c872

@vercel
Copy link

@vercel vercel bot commented on 8d0c872 Jun 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

plate-examples – ./

plate-examples-udecode.vercel.app
plate-examples-git-main-udecode.vercel.app
plate-examples.vercel.app

@vercel
Copy link

@vercel vercel bot commented on 8d0c872 Jun 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.