Commit graph

828 commits

Author SHA1 Message Date
Sean Yesmunt
0bf656f74b Revert "fix import"
This reverts commit c84c8a0288.
2020-06-23 16:21:30 -04:00
Sean Yesmunt
c84c8a0288 fix import 2020-06-23 16:10:59 -04:00
Sean Yesmunt
b9f3146180 bring in blocked redux code from lbry-redux 2020-06-23 16:01:20 -04:00
Sean Yesmunt
49bcfdce83 bring in comment code from lbry-redux 2020-06-23 16:01:20 -04:00
infiinte-persistence
d7b1cde274 Add claim-overwrite prevention.
---Fixes:
#-2882: "Fix UX around publishing to already published URL".

---Changes:
1. Improved the error message (change color to red; emphasized the URL; tweaked the sentences a bit).
2. The `Publish` button will be grayed out in this scenario, until user explicitly decides to edit existing claim instead.
2020-06-22 15:21:42 -04:00
jessop
e3a5d71e34 channel update submitting state 2020-06-22 12:42:20 -04:00
jessop
e065c81f88 support channel pending state 2020-06-22 11:27:03 -04:00
eatdostacos
3d4f0a93b5 Add logos to custom logos page 2020-06-22 10:49:21 -04:00
infiinte-persistence
391b5d2b50 Delete unused or duplicate strings. 2020-06-22 10:27:55 -04:00
infiinte-persistence
2f8af4e1fa Allow upgrade nag bar to be dismissed per session
#-4368:
"Users on third party builds may have to wait a few hours for the update and the bar is annoying."
2020-06-22 09:50:35 -04:00
Sean Yesmunt
b4851e6045 bring in email preferences page from lbry.com 2020-06-22 09:45:49 -04:00
Alex Grin
d8b4c91259 minor typo
this is the more common spelling of revocable
2020-06-22 09:35:39 -04:00
infiinte-persistence
1cd18ac9f4 Inf-scroll: (1) Reset to top (2) Fix "page vs. results" being out of sync.
--- Issues:
(1) #-2669: Page does not restore to top when navigating new tags.

(2) "Encountered children with the same key" error (duplicate entries shown).
https://github.com/lbryio/lbry-desktop/issues/4367#issuecomment-645449206

--- Changes:
(1) Ignore the history if it's a new query (i.e. explicitly clicked). The BACK history will still behave as normal (doesn't reset to top).

(2) Previously, the `page` variable will continue to increment as you scroll and stay within the page (e.g. Trending vs New, or clicked another Tag). As you move between queries, we hit a scenario where `page` is significantly under or over the latest retrieved `claimSearchResult.length`. This messes up the rest of the code.

Fix by correcting the value of `page` according to the current `claimSearchResult.length` when necessary.
2020-06-22 09:31:05 -04:00
jessopb
dbac4aca39
Revert "improve channel update" 2020-06-19 13:10:34 -04:00
jessop
99753f7717 improve channel edit 2020-06-19 12:41:45 -04:00
infiinte-persistence
644e76fd81 Tip-Modal: Add settings persistence and UX improvements.
--- Issues:
(1) #-4394 add persistence to new support modal.
(2) Should collapse the custom field when presets are selected.
Even though the Send button repeats the amount for Tip, it's still confusing to see both the Preset being active and Custom numeric field visible.
(3) Missing localization tags.
2020-06-18 22:01:49 -04:00
Sean Yesmunt
fa246a7f1f move channel search into ChannelContent component 2020-06-18 12:19:21 -04:00
infiinte-persistence
d01c20394e Fix "muted=false + volume=0" case.
We need to handle two types of "mute":
- Volume icon is pressed to mute.
- Volume slider moved to 0%.
2020-06-16 17:14:22 -04:00
infiinte-persistence
662778c47b Use 'process.env.NODE_ENV' instead of 'electron-is-dev' for spewing debug logs. 2020-06-16 17:14:22 -04:00
infiinte-persistence
a20ea08ac7 Show "unmute" option on videos automatically muted by browser.
Implementation:
- The code is placed in <VideoJs> instead of <VideoViewer> as we need to control the video itself. It's more self-contained here, rather than trying to pass refs around between parent and child.
- useState cannot be used as it will cause a re-render when the hint it clicked and dismissed. The DOM is used to hide the button.
2020-06-16 17:14:22 -04:00
infiinte-persistence
bbda69dc5f Inf-scroll: Don't add pages when no more results are available.
--- The bad scenario:
A less popular tag like 'kanji' yields only 23 results today. The code continues to increase the page count. We'll either see some blank page glitches at the bottom, or repeated entries being shown.

--- The fix:
Assume that an unfilled page means "no more results" and stop incrementing the page. This seems true based on empirical evidence.
2020-06-16 16:59:00 -04:00
infiinte-persistence
522c6ddcd6 Inf-scroll: Fix "am I at bottom" logic.
If you are at the bottom and you hit the UP_ARROW key one time, the logic still thinks we are at the bottom, despite the component has clearly moved. Similar to the issue noted in the previous commit, this causes the page to increment incorrectly.

My wild guess is that the previous logic depends on the css height, so it might got broken due to css changes. Hopefully the new calculation is more robust and works for all cases.
2020-06-16 16:59:00 -04:00
infiinte-persistence
c957b159b1 Inf-scroll: Debounce before handling 'onscroll'.
---The bad scenario:
If you're at the bottom and you go up using UP_ARROW or HOME key, the coordinate is still at the bottom if we service the callback immediately. This causes 'contentWrapperAtBottomOfPage' to be true and we ended up incrementing the page unnecessarily (even for searches that no longer yield any extra results).

---Fix:
Fix by adding a delay. The value can probably be fine-tuned further.
2020-06-16 16:59:00 -04:00
infiinte-persistence
ff7b4092c9 Publish: Make 'Channel' setting persistent.
Per discussion with Tom.
2020-06-16 16:36:23 -04:00
infiinte-persistence
9d6af38a21 Persist trending selectors between tags.
---The issue:
When switching between tags, the selector defaults back to Trending even though you had another option already selected.

---Changes:
- 'orderParamUser' will store the last user state persistently. The persistent state is also made unique for each page (i.e. Your Tags and All Content will be unique).

- If the parent component passes in a specific order, that will be respected and will also become the new persisted value. One example is "Your Following", where it always starts at 'New'.

- Handled navigation history correctly
The test case:
   - Enter "Your Tags" (assume start at 'Trending')
   - Click 'New'
   - Click 'Top'
   - Back
   - Back (it should return to 'Trending')
As the top page history does not have any "?order=" value, we ended up with a no-op for the last Back. 'orderParamEntry' is added to handle this.
2020-06-16 16:36:23 -04:00
Sean Yesmunt
2066205b8f add user + rewards redux code from lbryinc 2020-06-16 09:56:32 -04:00
Sean Yesmunt
7138fe54bc bring in 'notifications' state from lbry-redux 2020-06-16 09:56:32 -04:00
eatdostacos
5a219c7b4b Add link to "Buy More LBC" button
Previously, the link was missing and the button didn't do anything.
2020-06-16 09:13:15 -04:00
Sean Yesmunt
8a825b1a83 fix typo 2020-06-15 19:18:34 -04:00
Sean Yesmunt
f13cc3c51c fix label on tx table for supports 2020-06-15 19:02:03 -04:00
infiinte-persistence
fe431c30a7 SimpleMDE: Add character-count display and standardize look with basic editor's. 2020-06-15 10:53:17 -04:00
infiinte-persistence
805904360e Set "Description" field limit to 5000 characters.
This applies to both Channel and Claim description.
2020-06-15 10:53:17 -04:00
infiinte-persistence
749b13e3eb Rename: "constants/comments.js" --> "constants/form-field.js" 2020-06-15 10:53:17 -04:00
infiinte-persistence
96041e8b09 SimpleMDE: Add character limit functionality. 2020-06-15 10:53:17 -04:00
infiinte-persistence
c197a1f230 Don't gray out on "Support/tip unlock" or "Abandon Claim" failures.
#4379
2020-06-15 10:51:50 -04:00
Sean Yesmunt
4bbd831a16 fix mobile style 2020-06-15 10:50:01 -04:00
Sean Yesmunt
c3cdc742ab fix submit button after confirming 2020-06-15 10:50:01 -04:00
Sean Yesmunt
deb4107dd0 confirmation cleanup 2020-06-15 10:50:01 -04:00
Sean Yesmunt
01e0a2a5db improve support/tip for 0 balance and own claims 2020-06-15 10:50:01 -04:00
Sean Yesmunt
019d1f9176 tip/support marriage 2020-06-15 10:50:01 -04:00
TigerxWood
8099088415 Made uniform display of text views
Too many forms of word "views" and "view" to translate, with caps and without. We need to choose the same in all places.
2020-06-09 09:26:41 -04:00
TigerxWood
bb790b4332 Removed space to sync with app-strings
Removed space to sync the text "LBRY takes privacy and choice seriously. Just a few questions before you enter the land of content freedom." with that from app-strings.jsx
2020-06-09 09:24:58 -04:00
TigerxWood
29b0111c9e Made strings from settingWalletServer translatable
Made connecting string translatable
2020-06-09 09:24:32 -04:00
TigerxWood
374323713b Make strings from fileDetails translatable
Text  for files sizes can be translated as Mo (from Mega octet) so KB, MB, GB etc will be Ko, Mo, Go etc. in other languages.
2020-06-09 09:24:15 -04:00
Sean Yesmunt
1dcf16b0b4 fix download link on desktop 2020-06-08 16:26:49 -04:00
Sean Yesmunt
36d60fabe4 make sure auth token header is set before any authenticated sdk calls are made 2020-06-08 13:38:34 -04:00
jessop
91662a9d57 force https thumbs or handle img src error 2020-06-08 09:42:19 -04:00
Sean Yesmunt
fea3533b4c fix share link 2020-06-05 12:17:36 -04:00
Sean Yesmunt
dd47bc673d fix links in embeds 2020-06-04 10:57:31 -04:00
infiinte-persistence
50fc2698d6 Add StatusBar into Page for 'app' only.
#3776 #4259
2020-06-04 10:31:06 -04:00
infiinte-persistence
ae82b3fc05 Create transient "status bar" to display the hover URL.
Implementation:
- <StatusBar> listens to 'update-target-url' and will show/hide itself as needed.
- Handled the display of "lbry://" protocol.

CSS:
- The colors chosen should work on both Light and Dark Theme.
- The delay is necessary to avoid blinkies when the mouse is moving around.

#4259
2020-06-04 10:31:06 -04:00
Sean Yesmunt
e7cdd6c13d moonpay 2020-06-03 14:16:43 -04:00
Sean Yesmunt
48a707f0db fix comment replies when turning off advanced mode 2020-06-03 11:39:37 -04:00
Sean Yesmunt
1cae7a6038 fix share link so claim id isn't lost in url 2020-06-03 11:39:37 -04:00
jessopb
77971e4f1f
Merge pull request #4305 from lbryio/noGa2
strip ga calls
2020-06-03 10:37:26 -04:00
jessop
7fe88d86d5 strip ga calls 2020-06-02 16:52:34 -04:00
TigerxWood
c0fc7e5fbd Fix boolean declaration in claimInsufficientCredits 2020-06-02 16:20:36 -04:00
TigerxWood
5b4e45b0b0 Update translatable string 2020-06-02 16:19:17 -04:00
Sean Yesmunt
16fcc4c932 only set x-lbry-auth-token once user is signed in 2020-06-02 16:10:43 -04:00
Sean Yesmunt
48eac1188f always use thumbnail from claim if it exists on web 2020-06-02 16:10:43 -04:00
Sean Yesmunt
a0ace5ca58 add refresh icon to refresh buttons 2020-06-02 16:10:43 -04:00
infiinte-persistence
cbb6fc8305 Remove unnecessary variables and strings for translation.
-- "/wallet" --
I believe this is a link and comes from redux, and shouldn't be translated.

-- "%message%" --
No point sending a variable-only to the translators -- the intended replacements are  translated correctly.

-- "%name%" --
Unused.

-- "Something something something..." ---
Unused.

-- Obsolete strings (replaced by better string) --
  "You are not able to see those stats right now. Make sure you are signed in with the correct email and have data sharing turned on."

  "You are not able to see this channel's stats right now. Make sure you are signed in with the correct email and have data sharing turned on."

  "There are no stats for this channel. Make sure you are signed in with the correct email and have data sharing turned on."
2020-06-01 10:29:16 -04:00
Sean Yesmunt
3d352593f3 defer rendering related/comments until user scrolls down 2020-06-01 10:28:13 -04:00
Jeremy Kauffman
a3d9555d38 pubish buttons get publish icons 2020-05-31 09:56:33 -04:00
TigerxWood
4fbc4458e7 Made texts translatable
Texts will be translated now
2020-05-29 16:52:00 -04:00
TigerxWood
75796901e0 Made texts translatable
Texts will be translated now
2020-05-29 16:45:58 -04:00
TigerxWood
87e369cb11 Made text translatable
Text will be translated now
2020-05-29 16:45:39 -04:00
TigerxWood
37b1caccc2 Made text translatable
Text will be translated now
2020-05-29 16:45:39 -04:00
TigerxWood
199953448c Made text translatable
Strings can be translated now
2020-05-29 16:44:41 -04:00
Sean Yesmunt
be10041ea4 disabled advanced editor for comment replies 2020-05-29 15:29:08 -04:00
Sean Yesmunt
d301102af6 call preference get after entering wallet password 2020-05-29 15:29:08 -04:00
jessopb
43e8c49dcc
Merge pull request #4285 from lbryio/matomo
initial matomo rollout
2020-05-29 15:11:16 -04:00
Sean Yesmunt
91aaceda99 re-enable gifs on homepage because i can't figure out how to get it to work 2020-05-29 13:26:06 -04:00
jessop
50089725f5 initial matomo rollout 2020-05-29 11:11:50 -04:00
Sean Yesmunt
85ec35f246 pause gifs until hover round 2 2020-05-28 13:07:51 -04:00
Sean Yesmunt
06f71f2f0d Revert "pause gifs until hover"
This reverts commit e97a03c5c9.
2020-05-28 12:31:45 -04:00
Sean Yesmunt
e97a03c5c9 pause gifs until hover 2020-05-28 11:39:39 -04:00
Sean Yesmunt
f03fe9f78b remove extra div 2020-05-28 10:47:27 -04:00
Sean Yesmunt
c2b80d3b3b fix dnd for some file types 2020-05-28 10:45:56 -04:00
infiinte-persistence
37fb7a9bf7 Consolidate variants of 'Read more' for reuse.
The version with the capitalized 'More' can probably be removed as well, but I left it as is.

#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
0cebb327c1 Fix split sentence: "%view_count% %views%"
The only issue I have with this as a translator is that I have no idea what this sentence is about, as both chunks are variables. This fix is more for clarity.

#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
1ef182ed71 Fix split sentence: "% downloaded"
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
951300a1cd Fix split sentence: "or" in "Refresh or Skip" wasn't translated
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
a37b00e774 Fix split sentence: "By continuing, you accept the"
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
8bd129799e Fix split sentence: "block|follow|unfollow this channel"
Concatenating strings directly assumes that all languages have the same structure as English, which it is not. This fix allows translators to move the tokens around per their language/grammar requirements.

#4239
2020-05-28 09:50:08 -04:00
Sean Yesmunt
424583de60 remove console log 2020-05-27 14:02:49 -04:00
Sean Yesmunt
d4e2f8ffe8 change balance loading string to 'Your Wallet' 2020-05-26 22:15:03 -04:00
Sean Yesmunt
356b96941d auto follow lbrycast channel along with lbry channel 2020-05-26 17:49:01 -04:00
Sean Yesmunt
68e687ee6e moar improvements 2020-05-26 14:42:44 -04:00
Sean Yesmunt
7562fdcfd5 clean up old lbrytv reference 2020-05-26 14:20:39 -04:00
Sean Yesmunt
f64e659a7c fix autoplay 2020-05-26 13:13:58 -04:00
Clayton Hickey
a7812350ce remove manual override in formatting for credits in header 2020-05-26 12:38:56 -04:00
Sean Yesmunt
3a5549c2dc fix publish page 2020-05-26 11:48:07 -04:00
jessop
e3c2919373 rename lbrytv to web
language and API consts

improve customization
custom homepages
get config from .env.default
custom title and logo

small changes

add pinned item to sidebar

rebase?
2020-05-25 17:21:02 -04:00
jessopb
1dba194b67
Merge pull request #4208 from jeffslofish/issue-4207
Allow double-clicking in header to maximize the app.
2020-05-25 15:00:36 -04:00
Sean Yesmunt
b914590a77 update lbry-redux and add loading spinner for comments 2020-05-25 14:45:43 -04:00
Cassidy
c0dd3e48a4 prevents effect from being re-ran on every render 2020-05-25 13:36:17 -04:00
Cassidy
b5f3ac0526 disables page scroll when pressing spacebar 2020-05-25 13:36:17 -04:00
Sean Yesmunt
8b68932997 improve first time play experience for paid content in blog posts 2020-05-25 13:29:38 -04:00
Sean Yesmunt
b244261715 commas 2020-05-25 13:29:38 -04:00
Sean Yesmunt
74dc6f4469 use nativeControls for ios devices 2020-05-25 10:36:17 -04:00
infiinte-persistence
8183b5822b Update markdown-toggle style in Publish to the new quick-action style for consistency with Comments. 2020-05-25 10:32:26 -04:00
infiinte-persistence
7064793319 Fix Reply's markdown-editor appearing in Create due to 'name' clash from a prior merger. 2020-05-25 10:32:26 -04:00
infiinte-persistence
5b11cd7c65 Comments: add ability to toggle between simple and markdown editor. 2020-05-25 10:32:26 -04:00
infiinte-persistence
fffd2f1576 FormField: add an optional quick-action button for 'markdown' and 'textarea'.
Technically, the other modes can have a quick-action button as well, but for now it's not implemented since it's unlikely to be used.

The first usage will be to house the "toggle markdown editor" button, but it can be used for anything. The caller will handle the action.

It will be located at the upper-right, which is a better place for such a button. Putting the "toggle markdown editor" button on the bottom seems too far away and seems to make the 'Done|Cancel' area too busy/cluttered.
2020-05-25 10:32:26 -04:00
Baltazar Gomez
ca4bbf53df
Support drag-and-drop file publishing (#4170) 2020-05-25 10:27:36 -04:00
infiinte-persistence
23848dd37a Fix <i18nMessage> not localizing the message.
--- Problem (#4173) ---
Messages under <i18nMessage> weren't localized although the translation is available. However, the tokens for these messages are localized, causing a mixed-language final string.

--- Fix ---
It appears that the original message (instead of the localized) was used in the token-substitution process.
2020-05-25 10:18:08 -04:00
Sean Yesmunt
737e0ed7ab add 2257 page in footer 2020-05-22 20:19:25 -04:00
Sean Yesmunt
03518c8a5a show price on embeds in markdown 2020-05-22 16:48:24 -04:00
Thomas Zarebczan
6d888b5121 A few tweaks 2020-05-22 11:17:47 -04:00
Sean Yesmunt
21f9fc7b31 Revert "Make sure native controls appear on touch devices Closes #4150"
This reverts commit 88f4329d34.
2020-05-22 10:30:56 -04:00
jessop
e204659df2 fix unintended signin on play 2020-05-21 17:25:38 -04:00
Jeffrey Fisher
88f4329d34 Make sure native controls appear on touch devices
Closes #4150
2020-05-21 13:28:34 -04:00
Sean Yesmunt
4c768b3814 fix embed player 2020-05-21 12:53:21 -04:00
Sean Yesmunt
e4500d692f fix embed player 2020-05-21 11:55:58 -04:00
Sean Yesmunt
c2abcf110c
Paid content on lbry.tv (#4197) 2020-05-21 11:38:28 -04:00
Sean Yesmunt
50361e1edb fix link style 2020-05-18 16:46:03 -04:00
Sean Yesmunt
2dccad2247 fix embed link to open in new tab instead of iframing the entire app inside embeds 2020-05-18 13:07:42 -04:00
Sean Yesmunt
1fa3ce4e50 basic checkout page prototype 2020-05-18 10:13:35 -04:00
Jeffrey Fisher
50c7308ee7 Allow double-clicking in header to maximize the app.
Closes #4207
2020-05-17 21:26:30 -07:00
Jeffrey Fisher
9c70df72dc Only show "start at" on share page for videos/audio
Closes #4177
2020-05-15 09:51:59 -04:00
Jeffrey Fisher
394fad5754 Clear media position if video has played to the end.
Closes #4174
2020-05-15 09:51:18 -04:00
eatdostacos
f6431ac235 Small Changes to publishFile/view.jsx 2020-05-15 09:46:29 -04:00
infiinte-persistence
4643eb96cc Define tooltips for MenuButtons.
<MenuButton> is not from us, so the automatic tooltip from the previous commit does not apply here.
2020-05-15 09:45:55 -04:00
infiinte-persistence
fa219af5aa Reuse available text as the tooltip where appropriate.
The best candidate is `aria-label`, followed by `description`.

Most of the existing elements already have these defined, so try to route it as the tooltip instead of having to explicitly define tooltips everywhere through a redundant `title` or <Tooltip> tag.

Minor side-effect:
This will cancel off any effect from a parent <Tooltip>, i.e. might confuse future developers who are trying to do "<Tooltip><Button></Button></Tooltip>".
2020-05-15 09:45:55 -04:00
Sean Yesmunt
e0c90f866c 🤦‍♂️ 2020-05-13 17:43:50 -04:00
Sean Yesmunt
22a4255320 add footer for web 2020-05-13 12:13:13 -04:00
btzr-io
c19d04f83e fix comic-book content-type detection
always show viewer: fix #4141

minor improvements for loading indicator
2020-05-13 10:18:36 -04:00
btzr-io
036cf734c6 prevent state updates after component unmounted 2020-05-13 10:18:36 -04:00
Baltazar Gomez
c8f21025d1 initial web support 2020-05-13 10:18:36 -04:00
Baltazar Gomez
1992e78c2e update comicbook viewer
- convert to functional component
- use hooks to load stream
2020-05-13 10:18:36 -04:00
Baltazar Gomez
872fa9363d use a readable stream as file source 2020-05-13 10:18:36 -04:00
Sean Yesmunt
3decc523b0 fallback to channel name if title doesn't exist 2020-05-11 15:21:40 -04:00
infiinte-persistence
598c336b66 Refactor DateTime to allow it's translated result string to be re-used elsewhere, for consistency. 2020-05-11 14:54:05 -04:00
infiinte-persistence
2582627f25 Fix localization issue in DateTime.
The class was only returning a localized string for 'years' and 'months'; English was used for the rest.

- Fixed by handling the remaining cases.
- New strings were added (1) so that they will all be consistent language-wise until the translators handle them all (2) allows for cleaner code through variable re-use (%duration%).
2020-05-11 14:54:05 -04:00
Sean Yesmunt
919f82ba94 purchases page, cleanup on pages with <ClaimList /> 2020-05-11 12:31:22 -04:00
Sean Yesmunt
ca5f54cbfd improve mobile styles 2020-05-11 10:51:47 -04:00
btzr-io
276f42f5e7 force new lines to render on markdown preview: fix #2390 2020-05-11 09:44:29 -04:00
jessopb
e2b1ef49a5
Merge pull request #4148 from lbryio/feat-trackReflectingFiles
track reflecting files after publish
2020-05-08 15:08:18 -04:00
btzr-io
6c9538e4f5 remove unnecessary div wraper 2020-05-08 14:16:40 -04:00
btzr-io
a8f6185f12 fix channel selector styles
fix #4072
2020-05-08 14:16:40 -04:00
jessop
0fcc657783 track reflecting files after publish 2020-05-08 14:13:56 -04:00
Jeffrey Fisher
c539ab91c0 Fix code review issues 2020-05-08 14:00:59 -04:00
Jeffrey Fisher
8fe9cfafbc Allow video sharing with start timestamp
Closes #3122
2020-05-08 14:00:59 -04:00
Jeffrey Fisher
fda372e565 Open hyperlinks in new tab
Closes #3467
2020-05-06 14:23:21 -04:00
Sean Yesmunt
ff429117cd make sure player callback has access to latest desktop start time 2020-05-05 16:47:27 -04:00
Sean Yesmunt
96d9e24a4b fix time to start analytics for desktop and fix rewards link 2020-05-05 14:04:52 -04:00
Sean Yesmunt
95233c2196 remove hard coded reward amount 2020-05-05 10:56:16 -04:00
Sean Yesmunt
db51789e07 pass time in ms to analytics for view apis 2020-05-05 10:09:53 -04:00
Sean Yesmunt
d8c6300f51 fix typo 2020-05-05 09:50:34 -04:00