Merge branch 'master' into select-thumbnail
This commit is contained in:
commit
0f5bc874bc
29 changed files with 120 additions and 745 deletions
|
@ -1,6 +0,0 @@
|
||||||
<component name="InspectionProjectProfileManager">
|
|
||||||
<profile version="1.0">
|
|
||||||
<option name="myName" value="Project Default" />
|
|
||||||
<inspection_tool class="Eslint" enabled="true" level="ERROR" enabled_by_default="true" />
|
|
||||||
</profile>
|
|
||||||
</component>
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="WEB_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="JavaScriptSettings">
|
|
||||||
<option name="languageLevel" value="FLOW" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/lbry-app.iml" filepath="$PROJECT_DIR$/.idea/lbry-app.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -1,547 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ChangeListManager">
|
|
||||||
<list default="true" id="061e089e-71dc-4d6b-b27c-9c614b097257" name="Default" comment="">
|
|
||||||
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/renderer/types/claim.js" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/component/fileDetails/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/component/fileDetails/view.jsx" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/component/uriIndicator/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/component/uriIndicator/view.jsx" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/component/video/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/component/video/view.jsx" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/component/walletSendTip/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/component/walletSendTip/view.jsx" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/page/channel/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/page/channel/view.jsx" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/page/file/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/page/file/view.jsx" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/page/show/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/page/show/view.jsx" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/page/subscriptions/view.jsx" afterPath="$PROJECT_DIR$/src/renderer/page/subscriptions/view.jsx" />
|
|
||||||
</list>
|
|
||||||
<ignored path="$PROJECT_DIR$/.tmp/" />
|
|
||||||
<ignored path="$PROJECT_DIR$/temp/" />
|
|
||||||
<ignored path="$PROJECT_DIR$/tmp/" />
|
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
|
||||||
<option name="TRACKING_ENABLED" value="true" />
|
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
||||||
</component>
|
|
||||||
<component name="FileEditorManager">
|
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
|
||||||
<file leaf-file-name="view.jsx" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="index.js" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="216">
|
|
||||||
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="package.json" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/package.json">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1332">
|
|
||||||
<caret line="74" column="0" lean-forward="false" selection-start-line="74" selection-start-column="0" selection-end-line="74" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1526397284183" expanded="true" signature="2668:3140" ph="{"axios": "^0.18.0"...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="join.js" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/node_modules/bluebird/js/release/join.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="144">
|
|
||||||
<caret line="8" column="11" lean-forward="false" selection-start-line="8" selection-start-column="11" selection-end-line="8" selection-end-column="11" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="view.jsx" pinned="false" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/page/file/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="287">
|
|
||||||
<caret line="18" column="15" lean-forward="false" selection-start-line="18" selection-start-column="14" selection-end-line="18" selection-end-column="15" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
</leaf>
|
|
||||||
</component>
|
|
||||||
<component name="FindInProjectRecents">
|
|
||||||
<findStrings>
|
|
||||||
<find>TYPE_FEATURED_DOWNLOAD</find>
|
|
||||||
<find>TYPE_FEATURED_DOW</find>
|
|
||||||
<find>doOpen</find>
|
|
||||||
<find>doNotify</find>
|
|
||||||
<find>settings</find>
|
|
||||||
</findStrings>
|
|
||||||
</component>
|
|
||||||
<component name="Git.Settings">
|
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
||||||
</component>
|
|
||||||
<component name="IdeDocumentHistory">
|
|
||||||
<option name="CHANGED_PATHS">
|
|
||||||
<list>
|
|
||||||
<option value="$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js" />
|
|
||||||
<option value="$PROJECT_DIR$/package.json" />
|
|
||||||
<option value="$PROJECT_DIR$/README.md" />
|
|
||||||
<option value="$PROJECT_DIR$/src/renderer/page/file/view.jsx" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
|
|
||||||
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER">
|
|
||||||
<package-json value="$PROJECT_DIR$/package.json" />
|
|
||||||
</component>
|
|
||||||
<component name="JsFlowSettings">
|
|
||||||
<service-enabled>true</service-enabled>
|
|
||||||
<exe-path />
|
|
||||||
<annotation-enable>false</annotation-enable>
|
|
||||||
<other-services-enabled>true</other-services-enabled>
|
|
||||||
<auto-save>true</auto-save>
|
|
||||||
</component>
|
|
||||||
<component name="JsGulpfileManager">
|
|
||||||
<detection-done>true</detection-done>
|
|
||||||
<sorting>DEFINITION_ORDER</sorting>
|
|
||||||
</component>
|
|
||||||
<component name="NodeModulesDirectoryManager">
|
|
||||||
<handled-path value="$PROJECT_DIR$/dist/linux-unpacked/resources/app.asar.unpacked/node_modules" />
|
|
||||||
<handled-path value="$PROJECT_DIR$/node_modules" />
|
|
||||||
</component>
|
|
||||||
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
|
|
||||||
<component name="ProjectFrameBounds" extendedState="6">
|
|
||||||
<option name="y" value="24" />
|
|
||||||
<option name="width" value="1920" />
|
|
||||||
<option name="height" value="1056" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
|
||||||
<component name="ProjectView">
|
|
||||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
|
||||||
<flattenPackages />
|
|
||||||
<showMembers />
|
|
||||||
<showModules />
|
|
||||||
<showLibraryContents />
|
|
||||||
<hideEmptyPackages />
|
|
||||||
<abbreviatePackageNames />
|
|
||||||
<autoscrollToSource />
|
|
||||||
<autoscrollFromSource />
|
|
||||||
<sortByType />
|
|
||||||
<manualOrder />
|
|
||||||
<foldersAlwaysOnTop value="true" />
|
|
||||||
</navigator>
|
|
||||||
<panes>
|
|
||||||
<pane id="Scope" />
|
|
||||||
<pane id="ProjectPane">
|
|
||||||
<subPane>
|
|
||||||
<expand>
|
|
||||||
<path>
|
|
||||||
<item name="lbry-app" type="b2602c69:ProjectViewProjectNode" />
|
|
||||||
<item name="lbry-app" type="2a2b976b:PhpTreeStructureProvider$1" />
|
|
||||||
</path>
|
|
||||||
</expand>
|
|
||||||
<select />
|
|
||||||
</subPane>
|
|
||||||
</pane>
|
|
||||||
<pane id="Scratches" />
|
|
||||||
</panes>
|
|
||||||
</component>
|
|
||||||
<component name="PropertiesComponent">
|
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
|
||||||
<property name="nodejs_interpreter_path" value="/usr/local/bin/node" />
|
|
||||||
<property name="HbShouldOpenHtmlAsHb" value="" />
|
|
||||||
<property name="node.js.path.for.package.eslint" value="project" />
|
|
||||||
<property name="node.js.detected.package.eslint" value="true" />
|
|
||||||
<property name="node.js.selected.package.eslint" value="$PROJECT_DIR$/node_modules/eslint" />
|
|
||||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
|
||||||
</component>
|
|
||||||
<component name="RunDashboard">
|
|
||||||
<option name="ruleStates">
|
|
||||||
<list>
|
|
||||||
<RuleState>
|
|
||||||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
|
||||||
</RuleState>
|
|
||||||
<RuleState>
|
|
||||||
<option name="name" value="StatusDashboardGroupingRule" />
|
|
||||||
</RuleState>
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="ShelveChangesManager" show_recycled="false">
|
|
||||||
<option name="remove_strategy" value="false" />
|
|
||||||
</component>
|
|
||||||
<component name="SvnConfiguration">
|
|
||||||
<configuration />
|
|
||||||
</component>
|
|
||||||
<component name="TaskManager">
|
|
||||||
<task active="true" id="Default" summary="Default task">
|
|
||||||
<changelist id="061e089e-71dc-4d6b-b27c-9c614b097257" name="Default" comment="" />
|
|
||||||
<created>1522354295512</created>
|
|
||||||
<option name="number" value="Default" />
|
|
||||||
<option name="presentableId" value="Default" />
|
|
||||||
<updated>1522354295512</updated>
|
|
||||||
<workItem from="1522354299246" duration="1866000" />
|
|
||||||
<workItem from="1522643117648" duration="2000" />
|
|
||||||
<workItem from="1524064618567" duration="2674000" />
|
|
||||||
<workItem from="1525381677126" duration="197000" />
|
|
||||||
<workItem from="1525382363305" duration="597000" />
|
|
||||||
<workItem from="1525461458836" duration="70000" />
|
|
||||||
<workItem from="1526067492327" duration="897000" />
|
|
||||||
<workItem from="1526397339713" duration="27000" />
|
|
||||||
</task>
|
|
||||||
<servers />
|
|
||||||
</component>
|
|
||||||
<component name="TimeTrackingManager">
|
|
||||||
<option name="totallyTimeSpent" value="6330000" />
|
|
||||||
</component>
|
|
||||||
<component name="ToolWindowManager">
|
|
||||||
<frame x="0" y="24" width="1920" height="1055" extended-state="6" />
|
|
||||||
<editor active="true" />
|
|
||||||
<layout>
|
|
||||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
|
||||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
|
||||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
|
||||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
||||||
</layout>
|
|
||||||
</component>
|
|
||||||
<component name="TypeScriptGeneratedFilesManager">
|
|
||||||
<option name="version" value="1" />
|
|
||||||
</component>
|
|
||||||
<component name="VcsContentAnnotationSettings">
|
|
||||||
<option name="myLimit" value="2678400000" />
|
|
||||||
</component>
|
|
||||||
<component name="XDebuggerManager">
|
|
||||||
<breakpoint-manager />
|
|
||||||
<watches-manager />
|
|
||||||
</component>
|
|
||||||
<component name="editorHistoryManager">
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="216">
|
|
||||||
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/package.json">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1332">
|
|
||||||
<caret line="74" column="0" lean-forward="false" selection-start-line="74" selection-start-column="0" selection-end-line="74" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1526397284183" expanded="true" signature="2668:3140" ph="{"axios": "^0.18.0"...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/node_modules/bluebird/js/release/join.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="144">
|
|
||||||
<caret line="8" column="11" lean-forward="false" selection-start-line="8" selection-start-column="11" selection-end-line="8" selection-end-column="11" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/package.json">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1332">
|
|
||||||
<caret line="74" column="0" lean-forward="false" selection-start-line="74" selection-start-column="0" selection-end-line="74" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1526397284183" expanded="true" signature="2668:3140" ph="{"axios": "^0.18.0"...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="216">
|
|
||||||
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/node_modules/bluebird/js/release/join.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="216">
|
|
||||||
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/package.json">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="2322">
|
|
||||||
<caret line="129" column="38" lean-forward="false" selection-start-line="129" selection-start-column="38" selection-end-line="129" selection-end-column="38" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1526397284183" expanded="true" signature="2668:3140" ph="{"axios": "^0.18.0"...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="144">
|
|
||||||
<caret line="19" column="68" lean-forward="true" selection-start-line="19" selection-start-column="68" selection-end-line="19" selection-end-column="68" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/page/rewards/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-122">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/redux/reducers/rewards.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-28">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/redux/actions/rewards.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-832">
|
|
||||||
<caret line="13" column="61" lean-forward="false" selection-start-line="13" selection-start-column="36" selection-end-line="13" selection-end-column="61" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/rewards.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="324">
|
|
||||||
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="216">
|
|
||||||
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/package.json">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="693">
|
|
||||||
<caret line="129" column="38" lean-forward="false" selection-start-line="129" selection-start-column="38" selection-end-line="129" selection-end-column="38" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1526397284183" expanded="true" signature="2668:3140" ph="{"axios": "^0.18.0"...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="144">
|
|
||||||
<caret line="19" column="68" lean-forward="true" selection-start-line="19" selection-start-column="68" selection-end-line="19" selection-end-column="68" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/page/rewards/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-122">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/redux/reducers/rewards.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-28">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/redux/actions/rewards.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-832">
|
|
||||||
<caret line="13" column="61" lean-forward="false" selection-start-line="13" selection-start-column="36" selection-end-line="13" selection-end-column="61" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/rewards.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="324">
|
|
||||||
<caret line="18" column="0" lean-forward="false" selection-start-line="18" selection-start-column="0" selection-end-line="18" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#26#0" expanded="true" />
|
|
||||||
<marker date="1526068149928" expanded="true" signature="5366:5471" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/modal/modalRouter/index.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="216">
|
|
||||||
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1525123536618" expanded="true" signature="1172:1177" ph="{...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/package.json">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1332">
|
|
||||||
<caret line="74" column="0" lean-forward="false" selection-start-line="74" selection-start-column="0" selection-end-line="74" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<marker date="1526397284183" expanded="true" signature="2668:3140" ph="{"axios": "^0.18.0"...}" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/CONTRIBUTING.md">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="540">
|
|
||||||
<caret line="168" column="0" lean-forward="true" selection-start-line="168" selection-start-column="0" selection-end-line="168" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/README.md">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="846">
|
|
||||||
<caret line="47" column="81" lean-forward="true" selection-start-line="47" selection-start-column="81" selection-end-line="47" selection-end-column="81" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/node_modules/bluebird/js/release/join.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="144">
|
|
||||||
<caret line="8" column="11" lean-forward="false" selection-start-line="8" selection-start-column="11" selection-end-line="8" selection-end-column="11" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/src/renderer/page/file/view.jsx">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="287">
|
|
||||||
<caret line="18" column="15" lean-forward="false" selection-start-line="18" selection-start-column="14" selection-end-line="18" selection-end-column="15" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -40,6 +40,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
|
||||||
* Fix markdown render ([#1179](https://github.com/lbryio/lbry-app/issues/1179))
|
* Fix markdown render ([#1179](https://github.com/lbryio/lbry-app/issues/1179))
|
||||||
* Fix new lines not showing correctly after markdown changes ([#1504](https://github.com/lbryio/lbry-app/issues/1504))
|
* Fix new lines not showing correctly after markdown changes ([#1504](https://github.com/lbryio/lbry-app/issues/1504))
|
||||||
* Fix claim ID being null when reporting a claim that was not previously download ([issue#1512](https://github.com/lbryio/lbry-app/issues/1512)) ([PR#1530](https://github.com/lbryio/lbry-app/pull/1530))
|
* Fix claim ID being null when reporting a claim that was not previously download ([issue#1512](https://github.com/lbryio/lbry-app/issues/1512)) ([PR#1530](https://github.com/lbryio/lbry-app/pull/1530))
|
||||||
|
* Fix URI and outpoint not being passed properly to API ([#1494](https://github.com/lbryio/lbry-app/issues/1494))
|
||||||
|
|
||||||
|
|
||||||
## [0.21.3] - 2018-04-23
|
## [0.21.3] - 2018-04-23
|
||||||
|
|
|
@ -64,8 +64,12 @@ export default appState => {
|
||||||
// path, so we just strip it off.
|
// path, so we just strip it off.
|
||||||
// - In a URI with a claim ID, like lbry://channel#claimid, Windows interprets the hash mark as
|
// - In a URI with a claim ID, like lbry://channel#claimid, Windows interprets the hash mark as
|
||||||
// an anchor and converts it to lbry://channel/#claimid. We remove the slash here as well.
|
// an anchor and converts it to lbry://channel/#claimid. We remove the slash here as well.
|
||||||
|
// - ? also interpreted as an anchor, remove slash also.
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
deepLinkingURI = deepLinkingURI.replace(/\/$/, '').replace('/#', '#');
|
deepLinkingURI = deepLinkingURI
|
||||||
|
.replace(/\/$/, '')
|
||||||
|
.replace('/#', '#')
|
||||||
|
.replace('/?', '?');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
deepLinkingURI = appState.macDeepLinkingURI;
|
deepLinkingURI = appState.macDeepLinkingURI;
|
||||||
|
|
|
@ -7,6 +7,7 @@ import ReactModal from 'react-modal';
|
||||||
import throttle from 'util/throttle';
|
import throttle from 'util/throttle';
|
||||||
import SideBar from 'component/sideBar';
|
import SideBar from 'component/sideBar';
|
||||||
import Header from 'component/header';
|
import Header from 'component/header';
|
||||||
|
import { openContextMenu } from '../../util/contextMenu';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
alertError: (string | {}) => void,
|
alertError: (string | {}) => void,
|
||||||
|
@ -79,7 +80,7 @@ class App extends React.PureComponent<Props> {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div id="window">
|
<div id="window" onContextMenu={e => openContextMenu(e)}>
|
||||||
<Theme />
|
<Theme />
|
||||||
<main className="page">
|
<main className="page">
|
||||||
<SideBar />
|
<SideBar />
|
||||||
|
|
|
@ -62,6 +62,8 @@ class FileCard extends React.PureComponent<Props> {
|
||||||
const shouldObscureNsfw = obscureNsfw && metadata && metadata.nsfw;
|
const shouldObscureNsfw = obscureNsfw && metadata && metadata.nsfw;
|
||||||
const isRewardContent = claim && rewardedContentClaimIds.includes(claim.claim_id);
|
const isRewardContent = claim && rewardedContentClaimIds.includes(claim.claim_id);
|
||||||
const handleContextMenu = event => {
|
const handleContextMenu = event => {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
openCopyLinkMenu(convertToShareLink(uri), event);
|
openCopyLinkMenu(convertToShareLink(uri), event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ class FileListSearch extends React.PureComponent<Props> {
|
||||||
return (
|
return (
|
||||||
query && (
|
query && (
|
||||||
<div className="search__results">
|
<div className="search__results">
|
||||||
<div className="search-result__column">
|
<div className="search-result__row">
|
||||||
<div className="file-list__header">{__('Content')}</div>
|
<div className="file-list__header">{__('Content')}</div>
|
||||||
{!isSearching &&
|
{!isSearching &&
|
||||||
(fileResults.length ? (
|
(fileResults.length ? (
|
||||||
|
@ -68,7 +68,7 @@ class FileListSearch extends React.PureComponent<Props> {
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="search-result__column">
|
<div className="search-result__row">
|
||||||
<div className="file-list__header">{__('Channels')}</div>
|
<div className="file-list__header">{__('Channels')}</div>
|
||||||
{!isSearching &&
|
{!isSearching &&
|
||||||
(channelResults.length ? (
|
(channelResults.length ? (
|
||||||
|
@ -78,7 +78,7 @@ class FileListSearch extends React.PureComponent<Props> {
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="search-result__column">
|
<div className="search-result__row">
|
||||||
<div className="file-list__header">{__('Your downloads')}</div>
|
<div className="file-list__header">{__('Your downloads')}</div>
|
||||||
{downloadUris && downloadUris.length ? (
|
{downloadUris && downloadUris.length ? (
|
||||||
downloadUris.map(uri => <FileTile hideNoResult key={uri} uri={uri} />)
|
downloadUris.map(uri => <FileTile hideNoResult key={uri} uri={uri} />)
|
||||||
|
|
|
@ -68,6 +68,7 @@ class FileTile extends React.PureComponent<Props> {
|
||||||
|
|
||||||
const uri = normalizeURI(this.props.uri);
|
const uri = normalizeURI(this.props.uri);
|
||||||
const isClaimed = !!claim;
|
const isClaimed = !!claim;
|
||||||
|
const description = isClaimed && metadata && metadata.description ? metadata.description : '';
|
||||||
const title =
|
const title =
|
||||||
isClaimed && metadata && metadata.title ? metadata.title : parseURI(uri).contentName;
|
isClaimed && metadata && metadata.title ? metadata.title : parseURI(uri).contentName;
|
||||||
const thumbnail = metadata && metadata.thumbnail ? metadata.thumbnail : null;
|
const thumbnail = metadata && metadata.thumbnail ? metadata.thumbnail : null;
|
||||||
|
@ -104,10 +105,13 @@ class FileTile extends React.PureComponent<Props> {
|
||||||
{showUri ? uri : channel || __('Anonymous')}
|
{showUri ? uri : channel || __('Anonymous')}
|
||||||
{isRewardContent && <Icon icon={icons.FEATURED} />}
|
{isRewardContent && <Icon icon={icons.FEATURED} />}
|
||||||
{showLocal && isDownloaded && <Icon icon={icons.LOCAL} />}
|
{showLocal && isDownloaded && <Icon icon={icons.LOCAL} />}
|
||||||
|
</div>
|
||||||
|
<div className="card__subtext card__subtext--small">
|
||||||
|
<TruncatedText lines={3}>{description}</TruncatedText>
|
||||||
|
</div>
|
||||||
<div className="card__subtitle-price">
|
<div className="card__subtitle-price">
|
||||||
<FilePrice uri={uri} />
|
<FilePrice uri={uri} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{!name && (
|
{!name && (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
{__('This location is unused.')}{' '}
|
{__('This location is unused.')}{' '}
|
||||||
|
|
|
@ -17,6 +17,7 @@ import AuthPage from 'page/auth';
|
||||||
import InvitePage from 'page/invite';
|
import InvitePage from 'page/invite';
|
||||||
import BackupPage from 'page/backup';
|
import BackupPage from 'page/backup';
|
||||||
import SubscriptionsPage from 'page/subscriptions';
|
import SubscriptionsPage from 'page/subscriptions';
|
||||||
|
import SearchPage from 'page/search';
|
||||||
|
|
||||||
const route = (props, page, routesMap) => {
|
const route = (props, page, routesMap) => {
|
||||||
const component = routesMap[page];
|
const component = routesMap[page];
|
||||||
|
@ -51,6 +52,7 @@ const Router = props => {
|
||||||
show: <ShowPage {...params} />,
|
show: <ShowPage {...params} />,
|
||||||
wallet: <WalletPage params={params} />,
|
wallet: <WalletPage params={params} />,
|
||||||
subscriptions: <SubscriptionsPage params={params} />,
|
subscriptions: <SubscriptionsPage params={params} />,
|
||||||
|
search: <SearchPage {...params} />,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -4,18 +4,22 @@ import * as icons from 'constants/icons';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
uri: ?string,
|
claimId: ?string,
|
||||||
|
claimName: ?string,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default (props: Props) => {
|
export default (props: Props) => {
|
||||||
const { uri } = props;
|
const { claimId, claimName } = props;
|
||||||
|
const speechURL = claimName.startsWith('@')
|
||||||
|
? `${claimName}:${claimId}`
|
||||||
|
: `${claimId}/${claimName}`;
|
||||||
|
|
||||||
return uri ? (
|
return claimId && claimName ? (
|
||||||
<Button
|
<Button
|
||||||
iconRight={icons.GLOBE}
|
icon={icons.GLOBE}
|
||||||
button="alt"
|
button="alt"
|
||||||
label={__('View on Web')}
|
label={__('View on Web')}
|
||||||
href={`http://spee.ch/${uri}`}
|
href={`http://spee.ch/${speechURL}`}
|
||||||
/>
|
/>
|
||||||
) : null;
|
) : null;
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,6 +7,7 @@ import {
|
||||||
MODALS,
|
MODALS,
|
||||||
doFocusSearchInput,
|
doFocusSearchInput,
|
||||||
doBlurSearchInput,
|
doBlurSearchInput,
|
||||||
|
doSearch,
|
||||||
} from 'lbry-redux';
|
} from 'lbry-redux';
|
||||||
import { doNavigate } from 'redux/actions/navigation';
|
import { doNavigate } from 'redux/actions/navigation';
|
||||||
import Wunderbar from './view';
|
import Wunderbar from './view';
|
||||||
|
@ -27,8 +28,8 @@ const select = state => {
|
||||||
|
|
||||||
const perform = dispatch => ({
|
const perform = dispatch => ({
|
||||||
onSearch: query => {
|
onSearch: query => {
|
||||||
dispatch(doUpdateSearchQuery(query));
|
dispatch(doSearch(query));
|
||||||
dispatch(doNotify({ id: MODALS.SEARCH }));
|
dispatch(doNavigate(`/search`, { query }));
|
||||||
},
|
},
|
||||||
onSubmit: (uri, extraParams) => dispatch(doNavigate('/show', { uri, ...extraParams })),
|
onSubmit: (uri, extraParams) => dispatch(doNavigate('/show', { uri, ...extraParams })),
|
||||||
updateSearchQuery: query => dispatch(doUpdateSearchQuery(query)),
|
updateSearchQuery: query => dispatch(doUpdateSearchQuery(query)),
|
||||||
|
|
|
@ -17,7 +17,6 @@ import store from 'store';
|
||||||
import app from './app';
|
import app from './app';
|
||||||
import analytics from './analytics';
|
import analytics from './analytics';
|
||||||
import doLogWarningConsoleMessage from './logWarningConsoleMessage';
|
import doLogWarningConsoleMessage from './logWarningConsoleMessage';
|
||||||
import { initContextMenu } from './util/contextMenu';
|
|
||||||
|
|
||||||
const { autoUpdater } = remote.require('electron-updater');
|
const { autoUpdater } = remote.require('electron-updater');
|
||||||
const APPPAGEURL = 'lbry://?';
|
const APPPAGEURL = 'lbry://?';
|
||||||
|
@ -113,8 +112,6 @@ document.addEventListener('click', event => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
document.addEventListener('contextmenu', initContextMenu);
|
|
||||||
|
|
||||||
const init = () => {
|
const init = () => {
|
||||||
autoUpdater.on('update-downloaded', () => {
|
autoUpdater.on('update-downloaded', () => {
|
||||||
app.store.dispatch(doAutoUpdate());
|
app.store.dispatch(doAutoUpdate());
|
||||||
|
@ -149,7 +146,7 @@ const init = () => {
|
||||||
ReactDOM.render(
|
ReactDOM.render(
|
||||||
<Provider store={store}>
|
<Provider store={store}>
|
||||||
<div>
|
<div>
|
||||||
<App onContextMenu={e => openContextMenu(e)} />
|
<App />
|
||||||
<SnackBar />
|
<SnackBar />
|
||||||
</div>
|
</div>
|
||||||
</Provider>,
|
</Provider>,
|
||||||
|
|
|
@ -21,7 +21,6 @@ import ModalFirstSubscription from 'modal/modalFirstSubscription';
|
||||||
import ModalConfirmTransaction from 'modal/modalConfirmTransaction';
|
import ModalConfirmTransaction from 'modal/modalConfirmTransaction';
|
||||||
import ModalSendTip from '../modalSendTip';
|
import ModalSendTip from '../modalSendTip';
|
||||||
import ModalPublish from '../modalPublish';
|
import ModalPublish from '../modalPublish';
|
||||||
import ModalSearch from '../modalSearch';
|
|
||||||
import ModalOpenExternalLink from '../modalOpenExternalLink';
|
import ModalOpenExternalLink from '../modalOpenExternalLink';
|
||||||
import ModalConfirmThumbnailUpload from 'modal/modalConfirmThumbnailUpload';
|
import ModalConfirmThumbnailUpload from 'modal/modalConfirmThumbnailUpload';
|
||||||
|
|
||||||
|
@ -160,8 +159,6 @@ class ModalRouter extends React.PureComponent<Props> {
|
||||||
return <ModalSendTip {...notificationProps} />;
|
return <ModalSendTip {...notificationProps} />;
|
||||||
case MODALS.PUBLISH:
|
case MODALS.PUBLISH:
|
||||||
return <ModalPublish {...notificationProps} />;
|
return <ModalPublish {...notificationProps} />;
|
||||||
case MODALS.SEARCH:
|
|
||||||
return <ModalSearch {...notificationProps} />;
|
|
||||||
case MODALS.CONFIRM_EXTERNAL_LINK:
|
case MODALS.CONFIRM_EXTERNAL_LINK:
|
||||||
return <ModalOpenExternalLink {...notificationProps} />;
|
return <ModalOpenExternalLink {...notificationProps} />;
|
||||||
case MODALS.CONFIRM_TRANSACTION:
|
case MODALS.CONFIRM_TRANSACTION:
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
import { connect } from 'react-redux';
|
|
||||||
import { doHideNotification } from 'lbry-redux';
|
|
||||||
import ModalSearch from './view';
|
|
||||||
import { doClearPublish } from 'redux/actions/publish';
|
|
||||||
import { doNavigate } from 'redux/actions/navigation';
|
|
||||||
|
|
||||||
const perform = dispatch => ({
|
|
||||||
closeModal: () => dispatch(doHideNotification()),
|
|
||||||
clearPublish: () => dispatch(doClearPublish()),
|
|
||||||
navigate: (path, params) => dispatch(doNavigate(path, params)),
|
|
||||||
});
|
|
||||||
|
|
||||||
export default connect(null, perform)(ModalSearch);
|
|
|
@ -1,25 +0,0 @@
|
||||||
// @flow
|
|
||||||
import React from 'react';
|
|
||||||
import { Modal } from 'modal/modal';
|
|
||||||
import SearchPage from 'page/search';
|
|
||||||
import Button from 'component/button';
|
|
||||||
import * as icons from 'constants/icons';
|
|
||||||
|
|
||||||
type Props = {
|
|
||||||
closeModal: () => void,
|
|
||||||
query: string,
|
|
||||||
};
|
|
||||||
|
|
||||||
class ModalSearch extends React.PureComponent<Props> {
|
|
||||||
render() {
|
|
||||||
const { closeModal, query } = this.props;
|
|
||||||
return (
|
|
||||||
<Modal isOpen type="custom" fullScreen>
|
|
||||||
<Button noPadding button="alt" icon={icons.CLOSE} onClick={closeModal} />
|
|
||||||
<SearchPage />
|
|
||||||
</Modal>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default ModalSearch;
|
|
|
@ -85,7 +85,7 @@ class ChannelPage extends React.PureComponent<Props> {
|
||||||
<h1>{name}</h1>
|
<h1>{name}</h1>
|
||||||
<div className="card__actions card__actions--no-margin">
|
<div className="card__actions card__actions--no-margin">
|
||||||
<SubscribeButton uri={permanentUrl} channelName={name} />
|
<SubscribeButton uri={permanentUrl} channelName={name} />
|
||||||
<ViewOnWebButton uri={`${name}:${claimId}`} />
|
<ViewOnWebButton claimId={claimId} claimName={name} />
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section>{contentList}</section>
|
<section>{contentList}</section>
|
||||||
|
|
|
@ -183,7 +183,7 @@ class FilePage extends React.Component<Props> {
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<Button
|
<Button
|
||||||
button="alt"
|
button="alt"
|
||||||
iconRight="Send"
|
icon="Send"
|
||||||
label={__('Enjoy this? Send a tip')}
|
label={__('Enjoy this? Send a tip')}
|
||||||
onClick={() => openModal({ id: MODALS.SEND_TIP }, { uri })}
|
onClick={() => openModal({ id: MODALS.SEND_TIP }, { uri })}
|
||||||
/>
|
/>
|
||||||
|
@ -191,12 +191,7 @@ class FilePage extends React.Component<Props> {
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
)}
|
)}
|
||||||
{speechSharable && (
|
{speechSharable && (
|
||||||
<ViewOnWebButton
|
<ViewOnWebButton claimId={claim.claim_id} claimName={claim.name} />
|
||||||
uri={buildURI({
|
|
||||||
claimId: claim.claim_id,
|
|
||||||
contentName: claim.name,
|
|
||||||
}).slice(7)}
|
|
||||||
/>
|
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -49,7 +49,7 @@ class RewardsPage extends React.PureComponent<Props> {
|
||||||
renderPageHeader() {
|
renderPageHeader() {
|
||||||
const { doAuth, navigate, user, daemonSettings } = this.props;
|
const { doAuth, navigate, user, daemonSettings } = this.props;
|
||||||
|
|
||||||
if (user && !user.is_reward_approved && daemonSettings.share_usage_data) {
|
if (user && !user.is_reward_approved && daemonSettings && daemonSettings.share_usage_data) {
|
||||||
if (!user.primary_email || !user.has_verified_email || !user.is_identity_verified) {
|
if (!user.primary_email || !user.has_verified_email || !user.is_identity_verified) {
|
||||||
return (
|
return (
|
||||||
<section className="card card--section">
|
<section className="card card--section">
|
||||||
|
@ -98,7 +98,7 @@ class RewardsPage extends React.PureComponent<Props> {
|
||||||
renderUnclaimedRewards() {
|
renderUnclaimedRewards() {
|
||||||
const { fetching, rewards, user, daemonSettings, navigate } = this.props;
|
const { fetching, rewards, user, daemonSettings, navigate } = this.props;
|
||||||
|
|
||||||
if (!daemonSettings.share_usage_data) {
|
if (daemonSettings && !daemonSettings.share_usage_data) {
|
||||||
return (
|
return (
|
||||||
<div className="card card--section">
|
<div className="card card--section">
|
||||||
<div className="card__title">{__('Disabled')}</div>
|
<div className="card__title">{__('Disabled')}</div>
|
||||||
|
|
|
@ -12,7 +12,6 @@ const MODAL_ANIMATION_TIME = 250;
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
query: ?string,
|
query: ?string,
|
||||||
updateSearchQuery: string => void,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class SearchPage extends React.PureComponent<Props> {
|
class SearchPage extends React.PureComponent<Props> {
|
||||||
|
@ -35,18 +34,9 @@ class SearchPage extends React.PureComponent<Props> {
|
||||||
input: ?HTMLInputElement;
|
input: ?HTMLInputElement;
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { query, updateSearchQuery } = this.props;
|
const { query } = this.props;
|
||||||
return (
|
return (
|
||||||
<Page noPadding>
|
<Page>
|
||||||
<div className="search__wrapper">
|
|
||||||
<input
|
|
||||||
ref={input => (this.input = input)}
|
|
||||||
className="search__input"
|
|
||||||
value={query}
|
|
||||||
placeholder={__('Search for anything...')}
|
|
||||||
onChange={event => updateSearchQuery(event.target.value)}
|
|
||||||
/>
|
|
||||||
|
|
||||||
{isURIValid(query) && (
|
{isURIValid(query) && (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<div className="file-list__header">
|
<div className="file-list__header">
|
||||||
|
@ -63,7 +53,6 @@ class SearchPage extends React.PureComponent<Props> {
|
||||||
)}
|
)}
|
||||||
<FileListSearch query={query} />
|
<FileListSearch query={query} />
|
||||||
<div className="help">{__('These search results are provided by LBRY, Inc.')}</div>
|
<div className="help">{__('These search results are provided by LBRY, Inc.')}</div>
|
||||||
</div>
|
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -225,7 +225,11 @@ export function doDownloadFile(uri, streamInfo) {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
dispatch(doStartDownload(uri, streamInfo.outpoint));
|
dispatch(doStartDownload(uri, streamInfo.outpoint));
|
||||||
|
|
||||||
analytics.apiLogView(uri, streamInfo.output, streamInfo.claim_id);
|
analytics.apiLogView(
|
||||||
|
`${streamInfo.claim_name}#${streamInfo.claim_id}`,
|
||||||
|
streamInfo.outpoint,
|
||||||
|
streamInfo.claim_id
|
||||||
|
);
|
||||||
|
|
||||||
dispatch(doClaimEligiblePurchaseRewards());
|
dispatch(doClaimEligiblePurchaseRewards());
|
||||||
};
|
};
|
||||||
|
|
|
@ -150,8 +150,8 @@ $large-breakpoint: 1760px;
|
||||||
--success-msg-bg: var(--color-green-light);
|
--success-msg-bg: var(--color-green-light);
|
||||||
|
|
||||||
/* File Tile Card */
|
/* File Tile Card */
|
||||||
--file-tile--media-height: 60px;
|
--file-tile--media-height: 100px;
|
||||||
--file-tile--media-width: 94px; // 60 * (1 + 9/16)
|
--file-tile--media-width: calc(100px * (1 + 9 / 16));
|
||||||
|
|
||||||
/* Modal */
|
/* Modal */
|
||||||
--modal-width: 440px;
|
--modal-width: 440px;
|
||||||
|
|
|
@ -100,13 +100,6 @@
|
||||||
color: var(--text-color);
|
color: var(--text-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
.card__title--file {
|
|
||||||
font-family: 'metropolis-bold';
|
|
||||||
font-size: 28px;
|
|
||||||
line-height: 36px;
|
|
||||||
padding-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.card__title--small {
|
.card__title--small {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
|
@ -114,11 +107,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.card__title--file {
|
.card__title--file {
|
||||||
|
font-family: 'metropolis-bold';
|
||||||
|
font-size: 28px;
|
||||||
|
margin-bottom: 0;
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card__subtitle {
|
.card__subtitle {
|
||||||
|
margin: 0;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-family: 'metropolis-medium';
|
font-family: 'metropolis-medium';
|
||||||
color: var(--card-text-color);
|
color: var(--card-text-color);
|
||||||
|
@ -200,6 +198,10 @@
|
||||||
font-family: 'metropolis-medium';
|
font-family: 'metropolis-medium';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card__subtext--small {
|
||||||
|
font-size: calc(var(--font-size-subtext-multiple) * 0.8em);
|
||||||
|
}
|
||||||
|
|
||||||
.card__actions {
|
.card__actions {
|
||||||
margin-top: $spacing-vertical * 2/3;
|
margin-top: $spacing-vertical * 2/3;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
.file-list__header {
|
.file-list__header {
|
||||||
margin-top: $spacing-vertical * 4/3;
|
margin-top: $spacing-vertical * 4/3;
|
||||||
font-size: 18px;
|
font-size: 24px;
|
||||||
|
|
||||||
.tooltip {
|
.tooltip {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
|
@ -23,7 +23,6 @@
|
||||||
.file-tile {
|
.file-tile {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-top: $spacing-vertical;
|
margin-top: $spacing-vertical;
|
||||||
max-width: 260px;
|
|
||||||
|
|
||||||
.card__media {
|
.card__media {
|
||||||
height: var(--file-tile--media-height);
|
height: var(--file-tile--media-height);
|
||||||
|
@ -40,7 +39,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.file-tile__info {
|
.file-tile__info {
|
||||||
margin-left: $spacing-vertical * 1/3;
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-left: $spacing-vertical * 2/3;
|
||||||
|
max-width: 500px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.file-tile__uri {
|
.file-tile__uri {
|
||||||
|
|
|
@ -81,28 +81,15 @@
|
||||||
background-color: var(--color-secondary);
|
background-color: var(--color-secondary);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Search modal
|
|
||||||
// Input field used inside search modal
|
|
||||||
.search__wrapper {
|
|
||||||
height: var(--search-modal-input-height);
|
|
||||||
}
|
|
||||||
|
|
||||||
.search__input {
|
|
||||||
font-family: 'metropolis-bold';
|
|
||||||
font-size: var(--search-modal-input-height);
|
|
||||||
color: var(--search-color);
|
|
||||||
background: transparent;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search__results {
|
.search__results {
|
||||||
display: flex;
|
|
||||||
padding-bottom: $spacing-vertical;
|
padding-bottom: $spacing-vertical;
|
||||||
|
flex-flow: wrap column;
|
||||||
|
|
||||||
.search-result__column {
|
.search-result__row {
|
||||||
flex: 0 0 270px;
|
padding: $spacing-vertical 0;
|
||||||
.card__media {
|
|
||||||
background-color: var(--color-search-placeholder);
|
&:first-of-type {
|
||||||
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,26 +21,41 @@ function injectDevelopmentTemplate(event, templates) {
|
||||||
return templates;
|
return templates;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function openContextMenu(event, templates = [], addDefaultTemplates = true) {
|
export function openContextMenu(event, templates = []) {
|
||||||
if (addDefaultTemplates) {
|
const isSomethingSelected = window.getSelection().toString().length > 0;
|
||||||
|
const { type } = event.target;
|
||||||
|
const isInput = event.target.matches('input') && (type === 'text' || type === 'number');
|
||||||
const { value } = event.target;
|
const { value } = event.target;
|
||||||
const inputTemplates = [
|
|
||||||
{ label: 'Cut', accelerator: 'CmdOrCtrl+X', role: 'cut' },
|
templates.push({
|
||||||
{ label: 'Copy', accelerator: 'CmdOrCtrl+C', role: 'copy' },
|
label: 'Copy',
|
||||||
{
|
accelerator: 'CmdOrCtrl+C',
|
||||||
|
role: 'copy',
|
||||||
|
enabled: isSomethingSelected,
|
||||||
|
});
|
||||||
|
|
||||||
|
// If context menu is opened on Input and there is text on the input and something is selected.
|
||||||
|
const { selectionStart, selectionEnd } = event.target;
|
||||||
|
if (!!value && isInput && selectionStart !== selectionEnd) {
|
||||||
|
templates.push({ label: 'Cut', accelerator: 'CmdOrCtrl+X', role: 'cut' });
|
||||||
|
}
|
||||||
|
|
||||||
|
// If context menu is opened on Input and text is present on clipboard
|
||||||
|
if (clipboard.readText().length > 0 && isInput) {
|
||||||
|
templates.push({
|
||||||
label: 'Paste',
|
label: 'Paste',
|
||||||
accelerator: 'CmdOrCtrl+V',
|
accelerator: 'CmdOrCtrl+V',
|
||||||
role: 'paste',
|
role: 'paste',
|
||||||
enabled: clipboard.readText().length > 0,
|
});
|
||||||
},
|
}
|
||||||
{
|
|
||||||
|
// If context menu is opened on Input
|
||||||
|
if (isInput && value) {
|
||||||
|
templates.push({
|
||||||
label: 'Select All',
|
label: 'Select All',
|
||||||
accelerator: 'CmdOrCtrl+A',
|
accelerator: 'CmdOrCtrl+A',
|
||||||
role: 'selectall',
|
role: 'selectall',
|
||||||
enabled: !!value,
|
});
|
||||||
},
|
|
||||||
];
|
|
||||||
templates.push(...inputTemplates);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
injectDevelopmentTemplate(event, templates);
|
injectDevelopmentTemplate(event, templates);
|
||||||
|
@ -57,12 +72,3 @@ export function openCopyLinkMenu(text, event) {
|
||||||
];
|
];
|
||||||
openContextMenu(event, templates, false);
|
openContextMenu(event, templates, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function initContextMenu(event) {
|
|
||||||
const { type } = event.target;
|
|
||||||
if (event.target.matches('input') && (type === 'text' || type === 'number')) {
|
|
||||||
openContextMenu(event);
|
|
||||||
} else {
|
|
||||||
event.preventDefault();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue