react-icalendar-link
Advanced tools
Comparing version 2.0.0 to 2.0.1
@@ -10,2 +10,3 @@ /** | ||
filename: string; | ||
rawContent: string; | ||
isCrappyIE: boolean; | ||
@@ -12,0 +13,0 @@ isSupported: () => boolean; |
@@ -99,4 +99,13 @@ function __$styleInject(css, ref) { | ||
} | ||
function buildUrl(event, useDataURL) { | ||
function buildUrl(event, useDataURL, rawContent) { | ||
if (useDataURL === void 0) { useDataURL = false; } | ||
if (rawContent === void 0) { rawContent = ""; } | ||
var body = []; | ||
body.push("URL:" + (event.url || document.URL)); | ||
body.push("DTSTART:" + formatDate(event.startTime)); | ||
body.push("SUMMARY:" + event.title); | ||
event.endTime && body.push("DTEND:" + formatDate(event.endTime)); | ||
event.description && body.push("DESCRIPTION:" + event.description); | ||
event.location && body.push("LOCATION:" + event.location); | ||
rawContent && body.push(rawContent); | ||
var url = [ | ||
@@ -106,8 +115,3 @@ "BEGIN:VCALENDAR", | ||
"BEGIN:VEVENT", | ||
"URL:" + document.URL, | ||
"DTSTART:" + formatDate(event.startTime), | ||
"DTEND:" + formatDate(event.endTime), | ||
"SUMMARY:" + event.title, | ||
"DESCRIPTION:" + event.description, | ||
"LOCATION:" + event.location, | ||
body.join("\n"), | ||
"END:VEVENT", | ||
@@ -153,4 +157,4 @@ "END:VCALENDAR" | ||
e.stopPropagation(); | ||
var _a = _this.props, event = _a.event, filename = _a.filename; | ||
var url = buildUrl(event, isIOSSafari()); | ||
var _a = _this.props, event = _a.event, filename = _a.filename, rawContent = _a.rawContent; | ||
var url = buildUrl(event, isIOSSafari(), rawContent); | ||
var blob = new Blob([url], { | ||
@@ -186,3 +190,4 @@ type: "text/calendar;charset=utf-8" | ||
filename: "download.ics", | ||
href: "#add-to-calendar" | ||
href: "#add-to-calendar", | ||
rawContent: "" | ||
}; | ||
@@ -189,0 +194,0 @@ return ICalLink; |
@@ -103,4 +103,13 @@ 'use strict'; | ||
} | ||
function buildUrl(event, useDataURL) { | ||
function buildUrl(event, useDataURL, rawContent) { | ||
if (useDataURL === void 0) { useDataURL = false; } | ||
if (rawContent === void 0) { rawContent = ""; } | ||
var body = []; | ||
body.push("URL:" + (event.url || document.URL)); | ||
body.push("DTSTART:" + formatDate(event.startTime)); | ||
body.push("SUMMARY:" + event.title); | ||
event.endTime && body.push("DTEND:" + formatDate(event.endTime)); | ||
event.description && body.push("DESCRIPTION:" + event.description); | ||
event.location && body.push("LOCATION:" + event.location); | ||
rawContent && body.push(rawContent); | ||
var url = [ | ||
@@ -110,8 +119,3 @@ "BEGIN:VCALENDAR", | ||
"BEGIN:VEVENT", | ||
"URL:" + document.URL, | ||
"DTSTART:" + formatDate(event.startTime), | ||
"DTEND:" + formatDate(event.endTime), | ||
"SUMMARY:" + event.title, | ||
"DESCRIPTION:" + event.description, | ||
"LOCATION:" + event.location, | ||
body.join("\n"), | ||
"END:VEVENT", | ||
@@ -157,4 +161,4 @@ "END:VCALENDAR" | ||
e.stopPropagation(); | ||
var _a = _this.props, event = _a.event, filename = _a.filename; | ||
var url = buildUrl(event, isIOSSafari()); | ||
var _a = _this.props, event = _a.event, filename = _a.filename, rawContent = _a.rawContent; | ||
var url = buildUrl(event, isIOSSafari(), rawContent); | ||
var blob = new Blob([url], { | ||
@@ -190,3 +194,4 @@ type: "text/calendar;charset=utf-8" | ||
filename: "download.ics", | ||
href: "#add-to-calendar" | ||
href: "#add-to-calendar", | ||
rawContent: "" | ||
}; | ||
@@ -193,0 +198,0 @@ return ICalLink; |
export interface ICalEvent { | ||
title: string; | ||
description: string; | ||
startTime: string; | ||
endTime: string; | ||
location: string; | ||
description?: string; | ||
endTime?: string; | ||
location?: string; | ||
url?: string; | ||
} | ||
export declare function formatDate(dateString: string): string; | ||
export declare function buildUrl(event: ICalEvent, useDataURL?: boolean): string; | ||
export declare function buildUrl(event: ICalEvent, useDataURL?: boolean, rawContent?: string): string; | ||
export declare function downloadBlob(blob: object, filename: string): void; | ||
@@ -11,0 +12,0 @@ export declare function isCrappyIE(): boolean; |
{ | ||
"name": "react-icalendar-link", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "Ability to create link for downloading ics file", | ||
@@ -5,0 +5,0 @@ "author": "josephj", |
@@ -37,4 +37,34 @@ # react-icalendar-link | ||
### Using Raw Content | ||
Currently it provides very few fields. You can provide the raw content for the extra fields instead. | ||
```jsx | ||
import React from "react"; | ||
import ICalendarLink from "react-icalendar-link"; | ||
class App extends React.Component { | ||
render() { | ||
const event = { | ||
title: "My Title", | ||
description: "My Description", | ||
startTime: "2018-10-07T10:30:00+10:00", | ||
location: "10 Carlotta St, Artarmon NSW 2064, Australia"; | ||
} | ||
const rawContent = `ATTENDEE;CN="Cyrus Daboo";CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:cyrus@example.com | ||
ATTENDEE;CN="Wilfredo Sanchez Vega";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:wilfredo@example.com | ||
ATTENDEE;CN="Bernard Desruisseaux";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT;RSVP=TRUE:mailto:bernard@example.net | ||
ATTENDEE;CN="Mike Douglass";CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:mailto:mike@example.org`; | ||
return ( | ||
<ICalendarLink event={event} rawContent={rawContent}> | ||
Add to Calendar | ||
</ICalendarLink>; | ||
); | ||
} | ||
} | ||
``` | ||
## License | ||
MIT © [josephj](https://github.com/josephj) |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
59406
397
70