diff --git a/src/components/SettingsBar.js b/src/components/SettingsBar.js
index c36cdb2..0c61084 100644
--- a/src/components/SettingsBar.js
+++ b/src/components/SettingsBar.js
@@ -8,6 +8,8 @@ import { version } from '../../package'
const wikiLinks = {
compressSingletonFolder: 'https://github.com/EnixCoda/Gitako/wiki/Compress-Singleton-Folder',
changeLog: 'https://github.com/EnixCoda/Gitako/wiki/Change-Log',
+ copyFileButton: 'https://github.com/EnixCoda/Gitako/wiki/Copy-file-and-snippet',
+ copySnippet: 'https://github.com/EnixCoda/Gitako/wiki/Copy-file-and-snippet',
}
const ACCESS_TOKEN_REGEXP = /^[0-9a-f]{40}$/
@@ -65,12 +67,12 @@ export default class SettingsBar extends React.PureComponent {
}
componentWillMount() {
- const { toggleShowSideBarShortcut, compressSingletonFolder } = this.props
- this.setState({ toggleShowSideBarShortcut, compressSingletonFolder })
+ const { toggleShowSideBarShortcut, compressSingletonFolder, copyFileButton, copySnippetButton } = this.props
+ this.setState({ toggleShowSideBarShortcut, compressSingletonFolder, copyFileButton, copySnippetButton })
}
- componentWillReceiveProps({ toggleShowSideBarShortcut, compressSingletonFolder }) {
- this.setState({ toggleShowSideBarShortcut, compressSingletonFolder })
+ componentWillReceiveProps({ toggleShowSideBarShortcut, compressSingletonFolder, copyFileButton, copySnippetButton }) {
+ this.setState({ toggleShowSideBarShortcut, compressSingletonFolder, copyFileButton, copySnippetButton })
}
onInputAccessToken = event => {
@@ -145,11 +147,27 @@ export default class SettingsBar extends React.PureComponent {
})
}
+ setCopyFile = async e => {
+ const enabled = e.target.checked
+ await configHelper.setOne(config.copyFileButton, enabled)
+ const { setCopyFile } = this.props
+ setCopyFile(enabled)
+ }
+
+ setCopySnippet = async e => {
+ const enabled = e.target.checked
+ await configHelper.setOne(config.copySnippetButton, enabled)
+ const { setCopySnippet } = this.props
+ setCopySnippet(enabled)
+ }
+
render() {
const {
accessTokenHint,
toggleShowSideBarShortcut,
compressSingletonFolder,
+ copyFileButton,
+ copySnippetButton,
shortcutHint,
accessToken,
compressHint,
@@ -228,6 +246,42 @@ export default class SettingsBar extends React.PureComponent {
{compressHint &&
{compressHint}
}
+
+
+ Copy File
+
+ (?)
+
+
+
+
+
+
+ Copy Snippet
+
+ (?)
+
+
+
+
Issue
diff --git a/src/components/SideBar.js b/src/components/SideBar.js
index e1d995c..51a2d82 100644
--- a/src/components/SideBar.js
+++ b/src/components/SideBar.js
@@ -131,6 +131,8 @@ export default class Gitako extends React.PureComponent {
showSettings,
accessToken,
compressSingletonFolder,
+ copyFileButton,
+ copySnippetButton,
toggleShowSideBarShortcut,
logoContainerElement,
toggleShowSideBar,
@@ -138,6 +140,8 @@ export default class Gitako extends React.PureComponent {
onShortcutChange,
onAccessTokenChange,
setCompressSingleton,
+ setCopyFile,
+ setCopySnippet,
} = this.props
return (
@@ -158,8 +162,12 @@ export default class Gitako extends React.PureComponent {
activated={showSettings}
accessToken={accessToken}
compressSingletonFolder={compressSingletonFolder}
+ copyFileButton={copyFileButton}
+ copySnippetButton={copySnippetButton}
toggleShowSideBarShortcut={toggleShowSideBarShortcut}
setCompressSingleton={setCompressSingleton}
+ setCopyFile={setCopyFile}
+ setCopySnippet={setCopySnippet}
/>
diff --git a/src/driver/core/Gitako.js b/src/driver/core/Gitako.js
index b0512c1..922294c 100644
--- a/src/driver/core/Gitako.js
+++ b/src/driver/core/Gitako.js
@@ -1,7 +1,4 @@
-import DOMHelper from 'utils/DOMHelper'
-
const init = dispatch => () => {
- DOMHelper.decorateGitHubPageContent()
}
export default {
diff --git a/src/driver/core/SideBar.js b/src/driver/core/SideBar.js
index bad4925..f5cbf9d 100644
--- a/src/driver/core/SideBar.js
+++ b/src/driver/core/SideBar.js
@@ -11,8 +11,9 @@ const init = dispatch => async () => {
let nothingWentWrong = true
const metaData = URLHelper.parse()
dispatch(setMetaData, metaData)
- const { access_token: accessToken, shortcut, compressSingletonFolder } = await configHelper.get()
- dispatch({ accessToken, toggleShowSideBarShortcut: shortcut, compressSingletonFolder })
+ const { access_token: accessToken, shortcut, compressSingletonFolder, copyFileButton, copySnippetButton } = await configHelper.get()
+ DOMHelper.decorateGitHubPageContent({ copyFileButton, copySnippetButton })
+ dispatch({ accessToken, toggleShowSideBarShortcut: shortcut, compressSingletonFolder, copyFileButton, copySnippetButton })
const detectedBranchName = DOMHelper.getCurrentBranch() || 'master'
let aggressivelyGotTreeData = GitHubHelper.getTreeData({
...metaData,
@@ -69,9 +70,9 @@ const handleError = dispatch => async (err) => {
}
const onPJAXEnd = dispatch => () => {
- dispatch(({ metaData }) => {
+ dispatch(({ metaData, copyFileButton, copySnippetButton }) => {
DOMHelper.unmountTopProgressBar()
- DOMHelper.decorateGitHubPageContent()
+ DOMHelper.decorateGitHubPageContent({ copyFileButton, copySnippetButton })
DOMHelper.focusSearchInput()
const mergedMetaData = { ...metaData, ...URLHelper.parse() }
dispatch(setShouldShow, URLHelper.isInCodePage(mergedMetaData))
@@ -113,6 +114,10 @@ const setMetaData = dispatch => metaData => dispatch({ metaData })
const setCompressSingleton = dispatch => compressSingletonFolder => dispatch({ compressSingletonFolder })
+const setCopyFile = dispatch => copyFileButton => dispatch({ copyFileButton })
+
+const setCopySnippet = dispatch => copySnippetButton => dispatch({ copySnippetButton })
+
export default {
init,
onPJAXEnd,
@@ -125,6 +130,8 @@ export default {
onShortcutChange,
setMetaData,
setCompressSingleton,
+ setCopyFile,
+ setCopySnippet,
setError,
handleError,
}
diff --git a/src/utils/DOMHelper.js b/src/utils/DOMHelper.js
index 85773e2..dddca68 100644
--- a/src/utils/DOMHelper.js
+++ b/src/utils/DOMHelper.js
@@ -327,9 +327,9 @@ function clickOnNodeElement(index = 0) {
/**
* a combination of few above functions
*/
-function decorateGitHubPageContent() {
- attachCopyFileBtn()
- attachCopySnippet()
+function decorateGitHubPageContent({ copyFileButton, copySnippetButton }) {
+ if (copyFileButton) attachCopyFileBtn()
+ if (copySnippetButton) attachCopySnippet()
}
function mountTopProgressBar() {
diff --git a/src/utils/configHelper.js b/src/utils/configHelper.js
index f892577..160f629 100644
--- a/src/utils/configHelper.js
+++ b/src/utils/configHelper.js
@@ -5,6 +5,8 @@ export const config = {
shortcut: 'shortcut',
accessToken: 'access_token',
compressSingletonFolder: 'compressSingletonFolder',
+ copyFileButton: 'copyFileButton',
+ copySnippetButton: 'copySnippetButton',
}
const configKeys = Object.values(config)