diff --git a/.gitignore b/.gitignore
index c212707ad..233924d55 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ build/daemon.zip
.vimrc
package-lock.json
+ui/yarn.lock
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bcbe49bfb..d8f65e2ee 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,14 +10,17 @@ Web UI version numbers should always match the corresponding version of LBRY App
### Added
* Added option to release claim when deleting a file
* Added transition to card hovers to smooth animation
+ * Support markdown makeup in claim description
+ *
### Changed
- *
+ * Publishes now uses claims rather than files
*
### Fixed
* Fixed bug with download notice when switching window focus
- *
+ * Fixed newly published files appearing twice
+ * Fixed unconfirmed published files missing channel name
### Deprecated
*
diff --git a/ui/js/component/common.js b/ui/js/component/common.js
index 1b48bc4df..57314bdd3 100644
--- a/ui/js/component/common.js
+++ b/ui/js/component/common.js
@@ -1,5 +1,7 @@
import React from "react";
+import ReactDOMServer from "react-dom/server";
import lbry from "../lbry.js";
+import ReactMarkdown from "react-markdown";
//component/icon.js
export class Icon extends React.PureComponent {
diff --git a/ui/js/component/fileCard/view.jsx b/ui/js/component/fileCard/view.jsx
index 42c0e5b68..256bc9014 100644
--- a/ui/js/component/fileCard/view.jsx
+++ b/ui/js/component/fileCard/view.jsx
@@ -1,7 +1,12 @@
import React from "react";
import lbryuri from "lbryuri.js";
import Link from "component/link";
-import { TruncatedText, Icon } from "component/common";
+import {
+ Thumbnail,
+ TruncatedText,
+ Icon,
+ TruncatedMarkdown,
+} from "component/common";
import FilePrice from "component/filePrice";
import UriIndicator from "component/uriIndicator";
import NsfwOverlay from "component/nsfwOverlay";
@@ -94,7 +99,7 @@ class FileCard extends React.PureComponent {
style={{ backgroundImage: "url('" + metadata.thumbnail + "')" }}
/>}
{
+ this.handleMetadataChange(event);
+ }}
/>
{
+ this.handleMetadataChange(event);
+ }}
/>
{
+ this.handleMetadataChange(event);
+ }}
/>
{
+ this.handleMetadataChange(event);
+ }}
>
@@ -533,9 +586,11 @@ class PublishPage extends React.PureComponent {
{
+ this.handleMetadataChange(event);
+ }}
>
{/* */}
@@ -583,8 +638,7 @@ class PublishPage extends React.PureComponent {
placeholder="1.00"
min="0.01"
onChange={event => this.handleFeeAmountChange(event)}
- />
- {" "}
+ />{" "}
{
@@ -605,66 +659,71 @@ class PublishPage extends React.PureComponent {
{
+ this._meta_license = row;
+ }}
onChange={event => {
- this.handleLicenseChange(event);
+ this.handleLicenseTypeChange(event);
}}
>
-
-
+
-
-
-
-
-
-
-
-
- {this.state.copyrightChosen
+
+ {this.state.licenseType == "copyright"
?
: null}
- {this.state.otherLicenseChosen
+
+ {this.state.licenseType == "other"
? {
- this.handleOtherLicenseDescriptionChange();
+ this.handleOtherLicenseDescriptionChange(event);
}}
/>
: null}
- {this.state.otherLicenseChosen
+
+ {this.state.licenseType == "other"
? {
this.handleOtherLicenseUrlChange(event);
}}
@@ -730,6 +793,15 @@ class PublishPage extends React.PureComponent {
}}
helper={this.getNameBidHelpText()}
/>
+ {this.myClaimExists() && !this.state.prefillDone
+ ?
+ {__("You already have a claim with this name.")}{" "}
+ this.handlePrefillClicked()}
+ />
+
+ : null}
{this.state.rawName
?
@@ -763,15 +835,11 @@ class PublishPage extends React.PureComponent {
}
type="checkbox"
- name="tos_agree"
- ref={field => {
- this.refs.tos_agree = field;
- }}
+ checked={this.state.tosAgree}
onChange={event => {
this.handleTOSChange(event);
}}
diff --git a/ui/package.json b/ui/package.json
index d7aa3535a..4c4986ec2 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -29,8 +29,10 @@
"rc-progress": "^2.0.6",
"react": "^15.4.0",
"react-dom": "^15.4.0",
+ "react-markdown": "^2.5.0",
"react-modal": "^1.5.2",
"react-redux": "^5.0.3",
+ "react-simplemde-editor": "^3.6.11",
"redux": "^3.6.0",
"redux-action-buffer": "^1.1.0",
"redux-logger": "^3.0.1",
@@ -52,6 +54,8 @@
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.18.0",
+ "electron-rebuild": "^1.5.11",
+ "css-loader": "^0.28.4",
"eslint": "^3.10.2",
"eslint-config-airbnb": "^13.0.0",
"eslint-loader": "^1.6.1",
@@ -64,6 +68,7 @@
"lint-staged": "^3.6.0",
"node-loader": "^0.6.0",
"prettier": "^1.4.2",
+ "style-loader": "^0.18.2",
"webpack": "^2.6.1",
"webpack-dev-server": "^2.4.4",
"webpack-notifier": "^1.5.0",
diff --git a/ui/scss/component/_form-field.scss b/ui/scss/component/_form-field.scss
index 8fd86efef..f701ebe06 100644
--- a/ui/scss/component/_form-field.scss
+++ b/ui/scss/component/_form-field.scss
@@ -117,6 +117,9 @@ input[type="text"].input-copyable {
border: $width-input-border solid $color-form-border;
}
}
+.form-field--SimpleMDE {
+ display: block;
+}
.form-field__label {
&[for] { cursor: pointer; }
@@ -163,4 +166,8 @@ input[type="text"].input-copyable {
}
.form-field__helper {
color: $color-help;
+}
+
+.form-field__input.form-field__input-SimpleMDE .CodeMirror-scroll {
+ height: auto;
}
\ No newline at end of file