Skip to content

Commit 10e469a

Browse files
committed
feat: Add a button to format the code
1 parent 6168c99 commit 10e469a

File tree

5 files changed

+64
-2
lines changed

5 files changed

+64
-2
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"@material-ui/styles": "^4.3.3",
2424
"chrome-extension-async": "^3.3.2",
2525
"clean-webpack-plugin": "^3.0.0",
26+
"js-beautify": "^1.10.2",
2627
"lodash": "^4.17.15",
2728
"mobx": "^5.13.0",
2829
"mobx-react": "^6.1.3",

src/js/components/Format.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import React from 'react'
2+
import Button from '@material-ui/core/Button'
3+
import { useStore } from './StoreContext'
4+
import { observer } from 'mobx-react'
5+
6+
export default observer(() => {
7+
const { beautify } = useStore().AppStore
8+
return (
9+
<Button color='primary' onClick={beautify}>
10+
Format
11+
</Button>
12+
)
13+
})

src/js/components/Page.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import queryString from 'query-string'
1919
import NewTabLink from './NewTabLink'
2020
import { useStore } from './StoreContext'
2121
import { observer } from 'mobx-react'
22+
import Format from './Format'
2223

2324
const toolbarStyle = {
2425
display: 'flex',
@@ -65,6 +66,7 @@ export default observer(props => {
6566
<Save onSave={() => AppStore.save()} />
6667
<Reset closePopup={closePopup} />
6768
<ModeSelect />
69+
<Format />
6870
<NewTabLink />
6971
</div>
7072
<div>

src/js/stores/AppStore.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { action, computed, observable } from 'mobx'
22
import { encodeSource, decodeSource, getHosts, setHosts } from 'libs'
33
import isEqual from 'lodash.isequal'
44
import sizeof from 'object-sizeof'
5+
import { js } from 'js-beautify'
56

67
const key = 'popup'
78
const defaultSource = '// Here You can type your custom JavaScript...'
@@ -194,6 +195,12 @@ export default class AppStore {
194195
window.localStorage.removeItem(this.domainKey)
195196
}
196197

198+
@action
199+
beautify = () => {
200+
const value = js(this.source, { indent_size: 2 })
201+
this.onChangeSource(value)
202+
}
203+
197204
@action
198205
onChangeSource = value => {
199206
this.source = value

yarn.lock

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2688,6 +2688,14 @@ concat-stream@^2.0.0:
26882688
readable-stream "^3.0.2"
26892689
typedarray "^0.0.6"
26902690

2691+
config-chain@^1.1.12:
2692+
version "1.1.12"
2693+
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
2694+
integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
2695+
dependencies:
2696+
ini "^1.3.4"
2697+
proto-list "~1.2.1"
2698+
26912699
configstore@^3.0.0, configstore@^3.1.2:
26922700
version "3.1.2"
26932701
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
@@ -3899,6 +3907,16 @@ ecdsa-sig-formatter@1.0.11:
38993907
dependencies:
39003908
safe-buffer "^5.0.1"
39013909

3910+
editorconfig@^0.15.3:
3911+
version "0.15.3"
3912+
resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5"
3913+
integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==
3914+
dependencies:
3915+
commander "^2.19.0"
3916+
lru-cache "^4.1.5"
3917+
semver "^5.6.0"
3918+
sigmund "^1.0.1"
3919+
39023920
ee-first@1.1.1:
39033921
version "1.1.1"
39043922
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -7119,6 +7137,17 @@ jetpack-id@1.0.0:
71197137
resolved "https://registry.yarnpkg.com/jetpack-id/-/jetpack-id-1.0.0.tgz#2cf9fbae46d8074fc16b7de0071c8efebca473a6"
71207138
integrity sha1-LPn7rkbYB0/Ba33gBxyO/rykc6Y=
71217139

7140+
js-beautify@^1.10.2:
7141+
version "1.10.2"
7142+
resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178"
7143+
integrity sha512-ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ==
7144+
dependencies:
7145+
config-chain "^1.1.12"
7146+
editorconfig "^0.15.3"
7147+
glob "^7.1.3"
7148+
mkdirp "~0.5.1"
7149+
nopt "~4.0.1"
7150+
71227151
js-select@~0.6.0:
71237152
version "0.6.0"
71247153
resolved "https://registry.yarnpkg.com/js-select/-/js-select-0.6.0.tgz#c284e22824d5927aec962dcdf247174aefb0d190"
@@ -7916,7 +7945,7 @@ lowercase-keys@^2.0.0:
79167945
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
79177946
integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
79187947

7919-
lru-cache@^4.0.0, lru-cache@^4.0.1, lru-cache@^4.1.2:
7948+
lru-cache@^4.0.0, lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.5:
79207949
version "4.1.5"
79217950
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
79227951
integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
@@ -8628,7 +8657,7 @@ nomnom@1.8.1:
86288657
chalk "~0.4.0"
86298658
underscore "~1.6.0"
86308659

8631-
nopt@^4.0.1:
8660+
nopt@^4.0.1, nopt@~4.0.1:
86328661
version "4.0.1"
86338662
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
86348663
integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
@@ -9984,6 +10013,11 @@ prop-types@^15.6.2, prop-types@^15.7.2:
998410013
object-assign "^4.1.1"
998510014
react-is "^16.8.1"
998610015

10016+
proto-list@~1.2.1:
10017+
version "1.2.4"
10018+
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
10019+
integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=
10020+
998710021
protocols@^1.1.0, protocols@^1.4.0:
998810022
version "1.4.7"
998910023
resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32"
@@ -11159,6 +11193,11 @@ shellwords@^0.1.1:
1115911193
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
1116011194
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
1116111195

11196+
sigmund@^1.0.1:
11197+
version "1.0.1"
11198+
resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
11199+
integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
11200+
1116211201
sign-addon@0.3.1:
1116311202
version "0.3.1"
1116411203
resolved "https://registry.yarnpkg.com/sign-addon/-/sign-addon-0.3.1.tgz#7798ba994c8cd803a64a11a12a377ae6f714565e"

0 commit comments

Comments
 (0)