diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a57edac4..e66e97c3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ Web UI version numbers should always match the corresponding version of LBRY App ## [Unreleased] ### Added - * Added copy address button to the Wallet Address component on Send / Receive (#875) + * * ### Changed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e9d7c9811..e7d0dce20 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,46 +1,3 @@ -# Contributing to LBRY +## Contributing to LBRY -You found this page! That means you are well on your way to contributing to the LBRY app. This application is primarily written in JavaScript and is built on [Electron](https://electronjs.org) while utilizing [React](https://reactjs.org) and [Redux](https://redux.js.org) for UI and application state. - -LBRY is an open source project, and therefore is developed out in the open for everyone to see. What you see here are the latest source code changes and issues. - -Since LBRY is an based around a decentralized community, we believe that the app will be strongest if it receives contributions from individuals outside the core team -- such as yourself! - -In order to make contributing as easy and rewarding of possible, we have instituted the following system: - -* Anyone can view all issues in the system by clicking on the [Issues](https://github.com/lbryio/lbry-app/issues) button at the top of the page. Feel free to add an issue if you think we have missed something (and you might earn some LBC in the process because we do tip people for reporting bugs). -* Once on the [Issues](https://github.com/lbryio/lbry-app/issues) page, a potential contributor can filter issues by the [Help Wanted](https://github.com/lbryio/lbry-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) label to see a curated list of suggested issues with which community members can help. -* Every [Help Wanted](https://github.com/lbryio/lbry-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) issue is ranked on a scale from zero to four. - -Level | Description ---- | --- -[**level 0**](https://github.com/lbryio/lbry-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level+0%22) | Typos and text edits -- a tech savvy non-programmer can fix these -[**level 1**](https://github.com/lbryio/lbry-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level+1%22) | Programming issues that require little knowledge of how the LBRY app works -[**level 2**](https://github.com/lbryio/lbry-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level+2%22) | Issues of average difficulty that require the developer to dig into how the app works a little bit -[**level 3**](https://github.com/lbryio/lbry-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level+3%22) | Issues that are likely too tricky to be level 2 or require more thinking outside of the box -[**level 4**](https://github.com/lbryio/lbry-app/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level+4%22) | Big features or really hard issues - -The process of ranking issues is highly subjective. The purpose of sorting issues like this is to give contributors a general idea of the type of issues at which they are looking. It could very well be the case that a level 1 issue is more difficult than a level 2, for instance. This system is meant to help you find relevant issues, not to prevent you from working on issues that you otherwise would. If these rankings don't work for you, feel free to ignore them. - -* After deciding what to work on, a potential contributor can [fork](https://help.github.com/articles/fork-a-repo/) this repository, make his or her changes, and submit a [pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/). -* Once the pull request is visible in the LBRY repo, a LBRY team member will review it and make sure it is up to our standards. At this point, the contributor may have to change his or her code based on our suggestions and comments. -* Then, upon a satisfactory review of the code, we will merge it and send the contributor a tip (in LBC) for the contribution. - -We are dedicated to being fair and friendly in this process. In __general__, level 4 issues will be paid more than level 3 issues which will be paid more than level 2, and so on. However, this is not due to their labels, but rather how difficult they ended up being. Maybe an issue labeled "level 1" turned out to be very difficult. In this case we would be **more than happy** to tip accordingly. If you do good work, we want you to be rewarded for it. - -Also, we are here to enable you. We want you to succeed, so do not hesitate to ask questions. If you need some information or assistance in completing an issue, please let us know! That is what we are here for-- pushing development forward. - -Lastly, don't feel limited by this list. Should LBRY have built-in Tor support? Add it! It's not in the issue tracker but maybe it's a good idea. Do you think the search layout is unintuitive? Change it! We welcome all feedback and suggestions. That said, it may be the case that we do not wish to incorporate your change if you don't check with us first (also, please check with us especially if you are planning on adding Tor support :P). If you want to add a feature that is not listed in the issue tracker, go ahead and [create an issue](https://github.com/lbryio/lbry-app/issues/new), and say in the description that you would like to try to implement it yourself. This way we can tell you in advance if we will accept your changes and we can point you in the right direction. - -# Get In Touch -Name | Role | Discord | Email ---- | --- | --- | --- -[Liam](https://github.com/liamcardenas) | The application engineer in charge of community development. He is the person to contact with any development/contribution related questions. | liamsdouble | liam@lbry.io -[Tom](https://github.com/tzarebczan) | Community manager. He knows more than anyone about the app and all of its flaws. Reach out to him with any questions about how the app works, if a bug has been reported, or if a feature should be requested. | jigglytom | tom@lbry.io -[Sean](https://github.com/seanyesmunt) | An application engineer who focuses largely on UI/UX. If you have a design or implementation question, feel free to reach out to him. | sean | sean@lbry.io - -Join our discord [here](https://chat.lbry.io/). - -# More Information - -More information about contributing to LBRY [here](https://lbry.io/faq/contributing). +https://lbry.io/faq/contributing diff --git a/electron-builder.json b/electron-builder.json index 9e0a8f86b..acf8e77a2 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -1,7 +1,7 @@ { "appId": "io.lbry.LBRY", "mac": { - "category": "public.app-category.entertainment" + "category": "public.app-category.entertainment", }, "dmg": { "iconSize": 128, @@ -34,7 +34,6 @@ ], "linux": { "target": "deb", - "category": "Video", "desktop": { "MimeType": "x-scheme-handler/lbry", "Exec": "/opt/LBRY/lbry %U" diff --git a/src/renderer/component/fileCard/view.jsx b/src/renderer/component/fileCard/view.jsx index a7ec6a5fa..00a42eb29 100644 --- a/src/renderer/component/fileCard/view.jsx +++ b/src/renderer/component/fileCard/view.jsx @@ -94,22 +94,20 @@ class FileCard extends React.PureComponent { {title}
- + {" "} {isRewardContent && }{" "} {fileInfo && } - - - +
- - {/* Test for nizuka's design: should we remove description? + {/* Test for nizuka's design: should we remove description?
{description}
*/} + {obscureNsfw && this.state.hovered && } diff --git a/src/renderer/component/header/view.jsx b/src/renderer/component/header/view.jsx index 1e83abbe7..b3b6cdc51 100644 --- a/src/renderer/component/header/view.jsx +++ b/src/renderer/component/header/view.jsx @@ -46,6 +46,7 @@ export const Header = props => { onClick={() => navigate("/subscriptions")} button="alt button--flat" icon="icon-at" + title={__("My Subscriptions")} />
diff --git a/src/renderer/component/link/view.jsx b/src/renderer/component/link/view.jsx index 0f5ea3fca..cfb2a731b 100644 --- a/src/renderer/component/link/view.jsx +++ b/src/renderer/component/link/view.jsx @@ -16,7 +16,6 @@ const Link = props => { navigateParams, doNavigate, className, - span, } = props; const combinedClassName = @@ -27,8 +26,7 @@ const Link = props => { const onClick = !props.onClick && navigate - ? e => { - e.stopPropagation(); + ? () => { doNavigate(navigate, navigateParams || {}); } : props.onClick; @@ -46,18 +44,16 @@ const Link = props => { ); } - const linkProps = { - className: combinedClassName, - href: href || "javascript:;", - title, - onClick, - style, - }; - - return span ? ( - {content} - ) : ( - {content} + return ( + + {content} + ); }; diff --git a/src/renderer/component/uriIndicator/view.jsx b/src/renderer/component/uriIndicator/view.jsx index 60b912e35..3bf850d11 100644 --- a/src/renderer/component/uriIndicator/view.jsx +++ b/src/renderer/component/uriIndicator/view.jsx @@ -22,7 +22,7 @@ class UriIndicator extends React.PureComponent { } render() { - const { claim, link, uri, isResolvingUri, smallCard, span } = this.props; + const { claim, link, uri, isResolvingUri, smallCard } = this.props; if (isResolvingUri && !claim) { return Validating...; @@ -91,7 +91,6 @@ class UriIndicator extends React.PureComponent { navigate="/show" navigateParams={{ uri: channelLink }} className="no-underline" - span={span} > {inner} diff --git a/src/renderer/component/walletAddress/view.jsx b/src/renderer/component/walletAddress/view.jsx index 72bb91a46..829955fa6 100644 --- a/src/renderer/component/walletAddress/view.jsx +++ b/src/renderer/component/walletAddress/view.jsx @@ -21,7 +21,7 @@ class WalletAddress extends React.PureComponent { "Use this wallet address to receive credits sent by another user (or yourself)." )}

-
+
{ dock.setBadge(""); }); +(function(history) { + var replaceState = history.replaceState; + history.replaceState = function(_, __, path) { + amplitude + .getInstance() + .logEvent("NAVIGATION", { destination: path ? path.slice(1) : path }); + return replaceState.apply(history, arguments); + }; +})(window.history); + document.addEventListener("click", event => { var target = event.target; while (target && target !== document) { if (target.matches("a") || target.matches("button")) { // TODO: Look into using accessiblity labels (this would also make the app more accessible) let hrefParts = window.location.href.split("#"); - let element = target.title || (target.text && target.text.trim()); + let element = + target.title || (target.textContent && target.textContent.trim()); if (element) { amplitude.getInstance().logEvent("CLICK", { target: element, @@ -72,6 +85,7 @@ document.addEventListener("click", event => { amplitude.getInstance().logEvent("UNMARKED_CLICK", { location: hrefParts.length > 1 ? hrefParts[hrefParts.length - 1] : "/", + source: target.outerHTML, }); } } @@ -110,7 +124,7 @@ var init = function() {
, - document.getElementById('app') + document.getElementById("app") ); } ); @@ -124,7 +138,7 @@ var init = function() { , - document.getElementById('app') + document.getElementById("app") ); } }; diff --git a/src/renderer/redux/actions/navigation.js b/src/renderer/redux/actions/navigation.js index a4cbca615..b718936aa 100644 --- a/src/renderer/redux/actions/navigation.js +++ b/src/renderer/redux/actions/navigation.js @@ -9,7 +9,6 @@ import { } from "redux/selectors/navigation"; import { doSearch } from "redux/actions/search"; import { toQueryString } from "util/query_params"; -import amplitude from "amplitude-js"; export function doNavigate(path, params = {}, options = {}) { return function(dispatch, getState) { @@ -24,8 +23,6 @@ export function doNavigate(path, params = {}, options = {}) { const scrollY = options.scrollY; - amplitude.getInstance().logEvent("NAVIGATION", { destination: url }); - dispatch({ type: types.HISTORY_NAVIGATE, data: { url, index: options.index, scrollY },