create-blocklet 0.7.9 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/.github/workflows/main.yml +10 -7
- package/common/.prettierrc +1 -1
- package/common/LICENSE +1 -1
- package/common/_gitignore +1 -0
- package/common/scripts/build-clean.mjs +7 -0
- package/index.js +40 -32
- package/lib/arcblock.js +1 -1
- package/lib/constant.js +1 -0
- package/lib/did.js +2 -1
- package/lib/git.js +21 -21
- package/lib/server.js +10 -10
- package/lib/utils.js +2 -1
- package/package.json +16 -16
- package/templates/express-api/README.md +3 -3
- package/templates/express-api/api/hooks/pre-start.js +2 -1
- package/templates/express-api/api/index.js +1 -12
- package/templates/express-api/blocklet.yml +1 -1
- package/templates/express-api/package.json +20 -17
- package/templates/express-api/template-info.json +6 -3
- package/templates/html-static/README.md +3 -3
- package/templates/html-static/app/index.html +35 -36
- package/templates/html-static/app/styles/style.css +9 -1
- package/templates/html-static/blocklet.yml +1 -1
- package/templates/html-static/package.json +6 -5
- package/templates/html-static/template-info.json +2 -2
- package/templates/monorepo/.prettierrc +1 -1
- package/templates/monorepo/README.md +2 -2
- package/templates/monorepo/package.json +21 -13
- package/templates/monorepo/scripts/bump-version.mjs +1 -1
- package/templates/nestjs-api/.eslintrc.js +27 -3
- package/templates/nestjs-api/README.md +3 -3
- package/templates/nestjs-api/api/app.controller.ts +3 -1
- package/templates/nestjs-api/api/app.service.ts +1 -16
- package/templates/nestjs-api/api/hooks/pre-start.js +2 -1
- package/templates/nestjs-api/blocklet.yml +1 -1
- package/templates/nestjs-api/package.json +29 -26
- package/templates/nestjs-api/template-info.json +4 -1
- package/templates/nestjs-api/tsconfig.build.json +6 -1
- package/templates/nestjs-api/tsconfig.eslint.json +7 -0
- package/templates/nextjs-dapp/README.md +3 -3
- package/templates/nextjs-dapp/api/hooks/pre-start.js +2 -1
- package/templates/nextjs-dapp/blocklet.yml +1 -1
- package/templates/nextjs-dapp/package.json +23 -20
- package/templates/nextjs-dapp/pages/_app.js +1 -1
- package/templates/nextjs-dapp/pages/api/hello.js +1 -1
- package/templates/nextjs-dapp/pages/index.js +9 -17
- package/templates/nextjs-dapp/styles/Home.module.css +12 -3
- package/templates/nextjs-dapp/styles/globals.css +12 -2
- package/templates/nextjs-dapp/template-info.json +2 -2
- package/templates/react-dapp/README.md +3 -3
- package/templates/react-dapp/api/hooks/pre-start.js +2 -1
- package/templates/react-dapp/api/routes/index.js +6 -0
- package/templates/react-dapp/blocklet.yml +1 -1
- package/templates/react-dapp/index.html +14 -11
- package/templates/react-dapp/package.json +32 -28
- package/templates/react-dapp/src/app.jsx +1 -5
- package/templates/react-dapp/src/assets/blocklet.svg +16 -0
- package/templates/react-dapp/src/assets/react.svg +1 -0
- package/templates/react-dapp/src/assets/vite.svg +1 -0
- package/templates/react-dapp/src/index.css +68 -0
- package/templates/react-dapp/src/index.jsx +1 -0
- package/templates/react-dapp/src/libs/api.js +5 -12
- package/templates/react-dapp/src/pages/home.css +45 -0
- package/templates/react-dapp/src/pages/home.jsx +42 -15
- package/templates/react-dapp/template-info.json +2 -2
- package/templates/react-dapp-ts/.eslintrc.js +3 -0
- package/templates/react-dapp-ts/README.md +3 -3
- package/templates/react-dapp-ts/api/src/hooks/pre-start.ts +2 -2
- package/templates/react-dapp-ts/api/src/routes/index.ts +6 -0
- package/templates/react-dapp-ts/blocklet.yml +1 -1
- package/templates/react-dapp-ts/index.html +14 -11
- package/templates/react-dapp-ts/package.json +38 -34
- package/templates/react-dapp-ts/src/app.tsx +1 -6
- package/templates/react-dapp-ts/src/assets/blocklet.svg +16 -0
- package/templates/react-dapp-ts/src/assets/react.svg +1 -0
- package/templates/react-dapp-ts/src/assets/vite.svg +1 -0
- package/templates/react-dapp-ts/src/index.css +68 -0
- package/templates/react-dapp-ts/src/index.tsx +2 -2
- package/templates/react-dapp-ts/src/libs/api.ts +5 -12
- package/templates/react-dapp-ts/src/pages/home.css +45 -0
- package/templates/react-dapp-ts/src/pages/home.tsx +42 -15
- package/templates/react-dapp-ts/tsconfig.api.json +4 -1
- package/templates/react-dapp-ts/tsconfig.eslint.json +3 -1
- package/templates/react-gun-dapp/README.md +3 -3
- package/templates/react-gun-dapp/api/hooks/pre-start.js +2 -1
- package/templates/react-gun-dapp/blocklet.yml +1 -1
- package/templates/react-gun-dapp/index.html +14 -11
- package/templates/react-gun-dapp/package.json +31 -28
- package/templates/react-gun-dapp/src/app.jsx +1 -1
- package/templates/react-gun-dapp/src/libs/api.js +1 -1
- package/templates/react-gun-dapp/src/pages/about.jsx +5 -1
- package/templates/react-gun-dapp/src/pages/home.jsx +5 -1
- package/templates/react-static/README.md +3 -3
- package/templates/react-static/blocklet.yml +1 -1
- package/templates/react-static/index.html +14 -11
- package/templates/react-static/package.json +20 -18
- package/templates/react-static/src/app.jsx +1 -5
- package/templates/react-static/src/assets/blocklet.svg +16 -0
- package/templates/react-static/src/assets/react.svg +1 -0
- package/templates/react-static/src/assets/vite.svg +1 -0
- package/templates/react-static/src/index.css +68 -0
- package/templates/react-static/src/index.jsx +1 -0
- package/templates/react-static/src/pages/home.css +45 -0
- package/templates/react-static/src/pages/home.jsx +30 -15
- package/templates/react-static/template-info.json +6 -3
- package/templates/solidjs-dapp/.eslintrc.js +2 -1
- package/templates/solidjs-dapp/README.md +3 -3
- package/templates/solidjs-dapp/api/hooks/pre-start.js +2 -1
- package/templates/solidjs-dapp/api/routes/index.js +6 -0
- package/templates/solidjs-dapp/blocklet.yml +4 -2
- package/templates/solidjs-dapp/index.html +15 -12
- package/templates/solidjs-dapp/package.json +34 -30
- package/templates/solidjs-dapp/src/App.jsx +15 -3
- package/templates/solidjs-dapp/src/App.module.css +7 -1
- package/templates/solidjs-dapp/src/assets/blocklet.svg +16 -0
- package/templates/{solidjs-static/src/logo.svg → solidjs-dapp/src/assets/solidjs.svg} +1 -1
- package/templates/solidjs-dapp/src/index.css +21 -5
- package/templates/solidjs-dapp/src/libs/api.js +7 -0
- package/templates/solidjs-dapp/template-info.json +2 -2
- package/templates/solidjs-static/.eslintrc.js +4 -0
- package/templates/solidjs-static/README.md +3 -3
- package/templates/solidjs-static/blocklet.yml +1 -1
- package/templates/solidjs-static/index.html +15 -12
- package/templates/solidjs-static/package.json +22 -21
- package/templates/solidjs-static/src/App.jsx +7 -3
- package/templates/solidjs-static/src/App.module.css +7 -1
- package/templates/solidjs-static/src/assets/blocklet.svg +16 -0
- package/templates/solidjs-static/src/index.css +3 -5
- package/templates/solidjs-static/template-info.json +2 -2
- package/templates/svelte-dapp/README.md +3 -4
- package/templates/svelte-dapp/api/hooks/pre-start.js +2 -1
- package/templates/svelte-dapp/api/routes/index.js +6 -0
- package/templates/svelte-dapp/blocklet.yml +1 -1
- package/templates/svelte-dapp/index.html +13 -10
- package/templates/svelte-dapp/jsconfig.json +9 -7
- package/templates/svelte-dapp/package.json +29 -29
- package/templates/svelte-dapp/src/App.svelte +45 -42
- package/templates/svelte-dapp/src/app.css +79 -0
- package/templates/svelte-dapp/src/assets/blocklet.svg +16 -0
- package/templates/svelte-dapp/src/assets/svelte.svg +1 -0
- package/templates/svelte-dapp/src/assets/vite.svg +1 -0
- package/templates/svelte-dapp/src/components/Counter.svelte +10 -0
- package/templates/svelte-dapp/src/libs/api.js +7 -0
- package/templates/svelte-dapp/src/main.js +1 -0
- package/templates/svelte-dapp/template-info.json +2 -2
- package/templates/svelte-dapp/vite.config.mjs +6 -1
- package/templates/svelte-static/README.md +3 -4
- package/templates/svelte-static/blocklet.yml +1 -1
- package/templates/svelte-static/index.html +13 -10
- package/templates/svelte-static/jsconfig.json +9 -7
- package/templates/svelte-static/package.json +18 -22
- package/templates/svelte-static/src/App.svelte +36 -43
- package/templates/svelte-static/src/app.css +79 -0
- package/templates/svelte-static/src/assets/blocklet.svg +16 -0
- package/templates/svelte-static/src/assets/svelte.svg +1 -0
- package/templates/svelte-static/src/assets/vite.svg +1 -0
- package/templates/svelte-static/src/components/Counter.svelte +10 -0
- package/templates/svelte-static/src/main.js +1 -0
- package/templates/svelte-static/template-info.json +6 -3
- package/templates/svelte-static/vite.config.mjs +6 -1
- package/templates/todo-list-example/.eslintrc.js +1 -1
- package/templates/todo-list-example/api/src/hooks/pre-start.ts +2 -1
- package/templates/todo-list-example/api/src/routes/todo-list/$get.ts +1 -1
- package/templates/todo-list-example/api/src/routes/todo-list/$put.ts +1 -1
- package/templates/todo-list-example/blocklet.yml +7 -5
- package/templates/todo-list-example/index.html +14 -11
- package/templates/todo-list-example/package.json +44 -41
- package/templates/todo-list-example/src/components/layout.tsx +1 -1
- package/templates/todo-list-example/src/libs/api.ts +5 -12
- package/templates/todo-list-example/src/logo.svg +1 -1
- package/templates/todo-list-example/src/pages/required-login.tsx +3 -6
- package/templates/todo-list-example/src/pages/todo-list.css +72 -68
- package/templates/todo-list-example/src/pages/todo-list.tsx +32 -32
- package/templates/todo-list-example/template-info.json +1 -1
- package/templates/todo-list-example/tsconfig.api.json +4 -1
- package/templates/todo-list-example/tsconfig.eslint.json +3 -1
- package/templates/vue-dapp/README.md +3 -3
- package/templates/vue-dapp/api/hooks/pre-start.js +2 -1
- package/templates/vue-dapp/api/routes/index.js +6 -0
- package/templates/vue-dapp/blocklet.yml +1 -1
- package/templates/vue-dapp/index.html +14 -11
- package/templates/vue-dapp/package.json +32 -28
- package/templates/vue-dapp/src/App.vue +26 -19
- package/templates/vue-dapp/src/assets/blocklet.svg +16 -0
- package/templates/vue-dapp/src/assets/vite.svg +1 -0
- package/templates/vue-dapp/src/assets/vue.svg +1 -0
- package/templates/vue-dapp/src/components/HelloWorld.vue +25 -15
- package/templates/vue-dapp/src/libs/api.js +5 -12
- package/templates/vue-dapp/src/main.js +1 -0
- package/templates/vue-dapp/src/style.css +79 -0
- package/templates/vue-dapp/template-info.json +2 -2
- package/templates/vue-static/README.md +3 -3
- package/templates/vue-static/blocklet.yml +1 -1
- package/templates/vue-static/index.html +14 -11
- package/templates/vue-static/package.json +20 -19
- package/templates/vue-static/src/App.vue +27 -12
- package/templates/vue-static/src/assets/blocklet.svg +16 -0
- package/templates/vue-static/src/assets/vite.svg +1 -0
- package/templates/vue-static/src/assets/vue.svg +1 -0
- package/templates/vue-static/src/components/HelloWorld.vue +15 -15
- package/templates/vue-static/src/main.js +1 -0
- package/templates/vue-static/src/style.css +79 -0
- package/templates/vue-static/template-info.json +6 -3
- package/templates/vue2-dapp/README.md +3 -3
- package/templates/vue2-dapp/api/hooks/pre-start.js +2 -1
- package/templates/vue2-dapp/blocklet.yml +1 -1
- package/templates/vue2-dapp/index.html +14 -11
- package/templates/vue2-dapp/package.json +30 -27
- package/templates/vue2-dapp/src/libs/api.js +1 -1
- package/templates/vue2-dapp/template-info.json +2 -2
- package/templates/vue2-static/README.md +3 -3
- package/templates/vue2-static/blocklet.yml +1 -1
- package/templates/vue2-static/index.html +14 -11
- package/templates/vue2-static/package.json +19 -18
- package/templates/vue2-static/template-info.json +6 -3
- package/common/.husky/pre-commit +0 -4
- package/common/_npmrc +0 -4
- package/common/scripts/build-clean.js +0 -5
- package/templates/express-api/.env +0 -1
- package/templates/monorepo/.husky/pre-commit +0 -4
- package/templates/react-dapp/src/app.css +0 -30
- package/templates/react-dapp/src/logo.svg +0 -1
- package/templates/react-dapp/src/pages/about.jsx +0 -16
- package/templates/react-dapp-ts/src/app.css +0 -30
- package/templates/react-dapp-ts/src/logo.svg +0 -1
- package/templates/react-dapp-ts/src/pages/about.tsx +0 -16
- package/templates/react-static/src/app.css +0 -30
- package/templates/react-static/src/logo.svg +0 -1
- package/templates/react-static/src/pages/about.jsx +0 -16
- package/templates/svelte-dapp/.eslintrc.js +0 -22
- package/templates/svelte-dapp/src/assets/svelte.png +0 -0
- package/templates/svelte-dapp/src/lib/Counter.svelte +0 -34
- package/templates/svelte-static/.eslintrc.js +0 -22
- package/templates/svelte-static/src/assets/svelte.png +0 -0
- package/templates/svelte-static/src/lib/Counter.svelte +0 -34
- package/templates/todo-list-example/.editorconfig +0 -23
- package/templates/todo-list-example/.github/workflows/main.yml +0 -36
- package/templates/todo-list-example/.github/workflows/pr-title.yml +0 -21
- package/templates/todo-list-example/.github/workflows/version-check.yml +0 -20
- package/templates/todo-list-example/.husky/pre-commit +0 -4
- package/templates/todo-list-example/.prettierrc +0 -9
- package/templates/todo-list-example/logo.png +0 -0
- package/templates/todo-list-example/public/.gitkeep +0 -0
- package/templates/todo-list-example/screenshots/.gitkeep +0 -0
- package/templates/todo-list-example/scripts/build-clean.js +0 -5
- package/templates/todo-list-example/scripts/bump-version.mjs +0 -35
- package/templates/vue-static/src/assets/logo.png +0 -0
- /package/templates/monorepo/{eslintrc.js → .eslintrc.js} +0 -0
- /package/templates/{solidjs-dapp/src/logo.svg → solidjs-static/src/assets/solidjs.svg} +0 -0
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
*{
|
|
1
|
+
* {
|
|
2
2
|
margin: 0;
|
|
3
3
|
padding: 0;
|
|
4
4
|
font-family: sans-serif;
|
|
5
5
|
box-sizing: border-box;
|
|
6
|
-
}
|
|
6
|
+
}
|
|
7
7
|
|
|
8
8
|
/* container */
|
|
9
|
-
.container{
|
|
9
|
+
.container {
|
|
10
10
|
width: 100%;
|
|
11
11
|
min-height: 100vh;
|
|
12
12
|
background: #f6f8fa;
|
|
13
13
|
padding: 10px;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
.todo-app{
|
|
16
|
+
.todo-app {
|
|
17
17
|
width: 100%;
|
|
18
18
|
max-width: 540px;
|
|
19
19
|
background: white;
|
|
20
|
-
border: 0.5px solid
|
|
20
|
+
border: 0.5px solid #e5e5e5;
|
|
21
21
|
margin: 20px auto 20px;
|
|
22
22
|
padding: 40px 30px 70px;
|
|
23
23
|
border-radius: 15px;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
.todo-app h2{
|
|
26
|
+
.todo-app h2 {
|
|
27
27
|
display: flex;
|
|
28
28
|
align-items: center;
|
|
29
29
|
margin-bottom: 20px;
|
|
30
30
|
justify-content: center;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
.todo-app h2 img{
|
|
33
|
+
.todo-app h2 img {
|
|
34
34
|
width: 30px;
|
|
35
35
|
margin-left: 10px;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/* input box */
|
|
39
|
-
.row{
|
|
39
|
+
.row {
|
|
40
40
|
display: flex;
|
|
41
41
|
align-items: center;
|
|
42
42
|
justify-content: space-between;
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
margin-bottom: 25px;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
input{
|
|
49
|
+
input {
|
|
50
50
|
position: relative;
|
|
51
51
|
flex: 1;
|
|
52
52
|
border: none;
|
|
@@ -55,11 +55,11 @@ input{
|
|
|
55
55
|
padding: 10px;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
button{
|
|
58
|
+
button {
|
|
59
59
|
border: none;
|
|
60
60
|
outline: none;
|
|
61
61
|
padding: 16px 50px;
|
|
62
|
-
background: #
|
|
62
|
+
background: #4caf50;
|
|
63
63
|
color: white;
|
|
64
64
|
font-size: 16px;
|
|
65
65
|
cursor: pointer;
|
|
@@ -67,26 +67,24 @@ button{
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
/* styling on mid */
|
|
70
|
-
.mid{
|
|
70
|
+
.mid {
|
|
71
71
|
display: flex;
|
|
72
72
|
font-size: 1.2rem;
|
|
73
73
|
margin-left: 20px;
|
|
74
74
|
margin-bottom: 30px;
|
|
75
75
|
/* justify-content: space-between; */
|
|
76
|
-
|
|
77
76
|
}
|
|
78
77
|
|
|
79
|
-
#complete-all{
|
|
78
|
+
#complete-all {
|
|
80
79
|
margin-left: 10px;
|
|
81
80
|
cursor: pointer;
|
|
82
81
|
}
|
|
83
82
|
|
|
84
|
-
#clear-all{
|
|
83
|
+
#clear-all {
|
|
85
84
|
margin-left: 90px;
|
|
86
85
|
cursor: pointer;
|
|
87
86
|
}
|
|
88
87
|
|
|
89
|
-
|
|
90
88
|
/* styling on todo list */
|
|
91
89
|
|
|
92
90
|
ul {
|
|
@@ -117,18 +115,19 @@ ul li:hover {
|
|
|
117
115
|
cursor: pointer;
|
|
118
116
|
}
|
|
119
117
|
|
|
120
|
-
|
|
121
118
|
#list label {
|
|
122
119
|
position: relative;
|
|
123
120
|
cursor: pointer;
|
|
124
121
|
}
|
|
125
122
|
|
|
126
123
|
#list label:before {
|
|
127
|
-
content:'';
|
|
124
|
+
content: '';
|
|
128
125
|
-webkit-appearance: none;
|
|
129
126
|
background-color: transparent;
|
|
130
127
|
border: 2px solid #0079bf;
|
|
131
|
-
box-shadow:
|
|
128
|
+
box-shadow:
|
|
129
|
+
0 1px 2px rgba(0, 0, 0, 0.05),
|
|
130
|
+
inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05);
|
|
132
131
|
padding: 10px;
|
|
133
132
|
display: inline-block;
|
|
134
133
|
position: relative;
|
|
@@ -150,28 +149,28 @@ ul li:hover {
|
|
|
150
149
|
}
|
|
151
150
|
#list input:checked + label:before {
|
|
152
151
|
background: #0079bf;
|
|
153
|
-
}
|
|
152
|
+
}
|
|
154
153
|
#list input:checked + label {
|
|
155
154
|
text-decoration: line-through;
|
|
156
155
|
}
|
|
157
156
|
.delete {
|
|
158
|
-
height:
|
|
159
|
-
|
|
160
|
-
|
|
157
|
+
height: 26px;
|
|
158
|
+
padding: 5px 3px;
|
|
159
|
+
border-radius: 3px;
|
|
161
160
|
}
|
|
162
161
|
.delete:hover {
|
|
163
162
|
background: #f2f2f2;
|
|
164
163
|
cursor: pointer;
|
|
165
164
|
}
|
|
166
165
|
|
|
167
|
-
.edit{
|
|
168
|
-
height:
|
|
169
|
-
padding: 5px
|
|
166
|
+
.edit {
|
|
167
|
+
height: 26px;
|
|
168
|
+
padding: 5px 3px;
|
|
170
169
|
border-radius: 3px;
|
|
171
170
|
margin-right: 10px;
|
|
172
171
|
}
|
|
173
172
|
|
|
174
|
-
.edit:hover{
|
|
173
|
+
.edit:hover {
|
|
175
174
|
background: #f2f2f2;
|
|
176
175
|
cursor: pointer;
|
|
177
176
|
}
|
|
@@ -181,77 +180,82 @@ h1 {
|
|
|
181
180
|
}
|
|
182
181
|
.add-task {
|
|
183
182
|
width: 100%;
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
183
|
+
outline: none;
|
|
184
|
+
font-size: 15px;
|
|
185
|
+
padding: 11px;
|
|
186
|
+
border: 1px solid #f3f3f3;
|
|
187
|
+
margin-bottom: 3px;
|
|
188
|
+
}
|
|
189
|
+
.task-actions {
|
|
190
|
+
display: flex;
|
|
191
|
+
align-items: center;
|
|
192
|
+
gap: 8px;
|
|
189
193
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
194
|
|
|
194
195
|
#total-tasks {
|
|
195
196
|
margin-bottom: 20px;
|
|
196
197
|
font-size: 13px;
|
|
197
|
-
|
|
198
|
-
|
|
198
|
+
margin-left: 2px;
|
|
199
|
+
color: gray;
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
/*
|
|
202
203
|
dropdown*/
|
|
203
|
-
.filters{
|
|
204
|
-
margin-top: 40px;
|
|
204
|
+
.filters {
|
|
205
|
+
margin-top: 40px;
|
|
205
206
|
}
|
|
206
207
|
.dropbtn {
|
|
207
|
-
background-color: #
|
|
208
|
-
color: white;
|
|
209
|
-
padding: 10px 16px;
|
|
210
|
-
font-size: 16px;
|
|
211
|
-
border: none;
|
|
212
|
-
cursor: pointer;
|
|
213
|
-
border-radius: 5px;
|
|
208
|
+
background-color: #4caf50;
|
|
209
|
+
color: white;
|
|
210
|
+
padding: 10px 16px;
|
|
211
|
+
font-size: 16px;
|
|
212
|
+
border: none;
|
|
213
|
+
cursor: pointer;
|
|
214
|
+
border-radius: 5px;
|
|
214
215
|
}
|
|
215
216
|
|
|
216
217
|
.dropdown {
|
|
217
|
-
position: relative;
|
|
218
|
-
display: inline-block;
|
|
218
|
+
position: relative;
|
|
219
|
+
display: inline-block;
|
|
219
220
|
}
|
|
220
221
|
|
|
221
222
|
.dropdown-content {
|
|
222
|
-
display: none;
|
|
223
|
-
position: absolute;
|
|
224
|
-
background-color: #f9f9f9;
|
|
225
|
-
min-width: 160px;
|
|
226
|
-
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
|
227
|
-
z-index: 1;
|
|
223
|
+
display: none;
|
|
224
|
+
position: absolute;
|
|
225
|
+
background-color: #f9f9f9;
|
|
226
|
+
min-width: 160px;
|
|
227
|
+
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
|
228
|
+
z-index: 1;
|
|
228
229
|
}
|
|
229
230
|
|
|
230
|
-
.dropdown-content
|
|
231
|
-
color: black;
|
|
232
|
-
padding: 12px 16px;
|
|
233
|
-
text-decoration: none;
|
|
234
|
-
display: block;
|
|
231
|
+
.dropdown-content .item {
|
|
232
|
+
color: black;
|
|
233
|
+
padding: 12px 16px;
|
|
234
|
+
text-decoration: none;
|
|
235
|
+
display: block;
|
|
236
|
+
cursor: pointer;
|
|
235
237
|
}
|
|
236
238
|
|
|
237
|
-
.dropdown-content
|
|
239
|
+
.dropdown-content .item:hover {
|
|
240
|
+
background-color: #f1f1f1;
|
|
241
|
+
}
|
|
238
242
|
|
|
239
243
|
.dropdown:hover .dropdown-content {
|
|
240
|
-
display: block;
|
|
244
|
+
display: block;
|
|
241
245
|
}
|
|
242
246
|
|
|
243
247
|
.dropdown:hover .dropbtn {
|
|
244
|
-
background-color: #3e8e41;
|
|
248
|
+
background-color: #3e8e41;
|
|
245
249
|
}
|
|
246
250
|
|
|
247
|
-
.completed-task{
|
|
248
|
-
display: inline-block;
|
|
249
|
-
margin-left: 100px;
|
|
251
|
+
.completed-task {
|
|
252
|
+
display: inline-block;
|
|
253
|
+
margin-left: 100px;
|
|
250
254
|
}
|
|
251
255
|
|
|
252
|
-
.remaining-task{
|
|
253
|
-
display: inline-block;
|
|
254
|
-
margin-left: 80px;
|
|
256
|
+
.remaining-task {
|
|
257
|
+
display: inline-block;
|
|
258
|
+
margin-left: 80px;
|
|
255
259
|
}
|
|
256
260
|
|
|
257
261
|
/* .remaining-task p{
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
/* eslint-disable jsx-a11y/no-autofocus */
|
|
3
|
-
/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
|
|
4
|
-
/* eslint-disable jsx-a11y/alt-text */
|
|
5
|
-
import React, { useState, useEffect } from 'react';
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
6
2
|
import { ToastContainer, toast } from 'react-toastify';
|
|
7
3
|
import 'react-toastify/dist/ReactToastify.css';
|
|
8
|
-
import './todo-list.css';
|
|
9
4
|
import { nanoid } from 'nanoid';
|
|
10
5
|
import isEmpty from 'lodash/isEmpty';
|
|
11
6
|
import type { AxiosResponse } from 'axios';
|
|
7
|
+
|
|
8
|
+
import './todo-list.css';
|
|
12
9
|
import { useSessionContext } from '../contexts/session';
|
|
13
10
|
import RequiredLogin from './required-login';
|
|
14
11
|
import axios from '../libs/api';
|
|
@@ -88,7 +85,7 @@ function TodoList() {
|
|
|
88
85
|
|
|
89
86
|
const handleTaskCheckboxChange = async (taskId: string) => {
|
|
90
87
|
const currentTodoList = todoList.map((task) =>
|
|
91
|
-
task.id === taskId ? { ...task, completed: !task.completed } : task
|
|
88
|
+
task.id === taskId ? { ...task, completed: !task.completed } : task,
|
|
92
89
|
);
|
|
93
90
|
setTodoList(currentTodoList);
|
|
94
91
|
await putTodoList(currentTodoList);
|
|
@@ -120,7 +117,7 @@ function TodoList() {
|
|
|
120
117
|
};
|
|
121
118
|
|
|
122
119
|
const currentTodoList = todoList.map((task) =>
|
|
123
|
-
task.id === editTaskId ? { ...task, title: updatedTodo.title } : task
|
|
120
|
+
task.id === editTaskId ? { ...task, title: updatedTodo.title } : task,
|
|
124
121
|
);
|
|
125
122
|
setTodoList(currentTodoList);
|
|
126
123
|
await putTodoList(currentTodoList);
|
|
@@ -179,7 +176,6 @@ function TodoList() {
|
|
|
179
176
|
className="add-task"
|
|
180
177
|
id="add"
|
|
181
178
|
placeholder="Add your todo"
|
|
182
|
-
autoFocus
|
|
183
179
|
value={todoTitle}
|
|
184
180
|
onChange={handleInputChange}
|
|
185
181
|
/>
|
|
@@ -190,12 +186,12 @@ function TodoList() {
|
|
|
190
186
|
|
|
191
187
|
<div className="mid">
|
|
192
188
|
<i className="fas fa-check-double" />
|
|
193
|
-
<
|
|
189
|
+
<div id="complete-all" onClick={handleCompleteAll}>
|
|
194
190
|
Complete all todo
|
|
195
|
-
</
|
|
196
|
-
<
|
|
191
|
+
</div>
|
|
192
|
+
<div id="clear-all" onClick={handleClearCompleted}>
|
|
197
193
|
Delete comp todo
|
|
198
|
-
</
|
|
194
|
+
</div>
|
|
199
195
|
</div>
|
|
200
196
|
|
|
201
197
|
<ul id="list">
|
|
@@ -210,19 +206,23 @@ function TodoList() {
|
|
|
210
206
|
onChange={() => handleTaskCheckboxChange(task.id)}
|
|
211
207
|
/>
|
|
212
208
|
<label htmlFor={`task-${task.id}`}>{task.title}</label>
|
|
213
|
-
<div>
|
|
214
|
-
<
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
209
|
+
<div className="task-actions">
|
|
210
|
+
<div onClick={() => handleEditTask(task.id)}>
|
|
211
|
+
<img
|
|
212
|
+
src="https://cdn-icons-png.flaticon.com/128/1159/1159633.png"
|
|
213
|
+
className="edit"
|
|
214
|
+
data-id={task.id}
|
|
215
|
+
alt="Edit"
|
|
216
|
+
/>
|
|
217
|
+
</div>
|
|
218
|
+
<div onClick={() => handleDeleteTask(task.id)}>
|
|
219
|
+
<img
|
|
220
|
+
src="https://cdn-icons-png.flaticon.com/128/3096/3096673.png"
|
|
221
|
+
className="delete"
|
|
222
|
+
data-id={task.id}
|
|
223
|
+
alt="Delete"
|
|
224
|
+
/>
|
|
225
|
+
</div>
|
|
226
226
|
</div>
|
|
227
227
|
</li>
|
|
228
228
|
))}
|
|
@@ -234,15 +234,15 @@ function TodoList() {
|
|
|
234
234
|
Filter
|
|
235
235
|
</button>
|
|
236
236
|
<div className="dropdown-content">
|
|
237
|
-
<
|
|
237
|
+
<div className="item" id="all" onClick={() => handleFilterTypeChange('all')}>
|
|
238
238
|
All
|
|
239
|
-
</
|
|
240
|
-
<
|
|
239
|
+
</div>
|
|
240
|
+
<div className="item" id="rem" onClick={() => handleFilterTypeChange('uncompleted')}>
|
|
241
241
|
Uncompleted
|
|
242
|
-
</
|
|
243
|
-
<
|
|
242
|
+
</div>
|
|
243
|
+
<div className="item" id="com" onClick={() => handleFilterTypeChange('completed')}>
|
|
244
244
|
Completed
|
|
245
|
-
</
|
|
245
|
+
</div>
|
|
246
246
|
</div>
|
|
247
247
|
</div>
|
|
248
248
|
<div className="completed-task">
|
|
@@ -32,14 +32,14 @@ This blocklet is a static project, which means this is a frontend application. I
|
|
|
32
32
|
|
|
33
33
|
Blocklet needs blocklet server as a dependency. So you need to install it first.
|
|
34
34
|
`npm install -g @blocklet/cli`
|
|
35
|
-
See details in [https://
|
|
35
|
+
See details in [https://www.arcblock.io/docs/blocklet-developer/install-blocklet-cli](https://www.arcblock.io/docs/blocklet-developer/install-blocklet-cli)
|
|
36
36
|
|
|
37
37
|
2. Init blocklet server & start blocklet server
|
|
38
38
|
|
|
39
39
|
Before starting an blocklet server, you need to init blocklet server.
|
|
40
40
|
`blocklet server init --mode=debug`
|
|
41
41
|
`blocklet server start`
|
|
42
|
-
See details in [https://
|
|
42
|
+
See details in [https://www.arcblock.io/docs/blocklet-developer/getting-started](https://www.arcblock.io/docs/blocklet-developer/getting-started)
|
|
43
43
|
|
|
44
44
|
3. Go to the project directory `cd [name]`
|
|
45
45
|
4. Install dependencies: `npm install` or `yarn`
|
|
@@ -139,7 +139,7 @@ After developing a blocklet, you may need to bundle it. Use `npm run bundle` com
|
|
|
139
139
|
## Learn More
|
|
140
140
|
|
|
141
141
|
- Full specification of `blocklet.yml`: [https://github.com/blocklet/blocklet-specification/blob/main/docs/meta.md](https://github.com/blocklet/blocklet-specification/blob/main/docs/meta.md)
|
|
142
|
-
- Full document of Blocklet Server & blocklet development: [https://
|
|
142
|
+
- Full document of Blocklet Server & blocklet development: [https://www.arcblock.io/docs/blocklet-developer](https://www.arcblock.io/docs/blocklet-developer)
|
|
143
143
|
|
|
144
144
|
## License
|
|
145
145
|
|
|
@@ -25,9 +25,10 @@ const ensureAccountDeclared = async () => {
|
|
|
25
25
|
(async () => {
|
|
26
26
|
try {
|
|
27
27
|
await ensureAccountDeclared();
|
|
28
|
+
logger.info(`${name} pre-start successfully`);
|
|
28
29
|
process.exit(0);
|
|
29
30
|
} catch (err) {
|
|
30
|
-
logger.error(`${name} pre-start error`, err
|
|
31
|
+
logger.error(`${name} pre-start error`, err);
|
|
31
32
|
process.exit(1);
|
|
32
33
|
}
|
|
33
34
|
})();
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<link rel="icon" href="/favicon.ico?imageFilter=convert&f=png&w=32" />
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
8
|
+
<meta name="theme-color" content="#4F6AF5" />
|
|
9
|
+
</head>
|
|
10
|
+
|
|
11
|
+
<body>
|
|
12
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
13
|
+
<div id="app"></div>
|
|
14
|
+
<script type="module" src="/src/main.js"></script>
|
|
15
|
+
</body>
|
|
16
|
+
|
|
14
17
|
</html>
|
|
@@ -1,54 +1,55 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "template-vue",
|
|
2
|
+
"name": "template-vue-dapp",
|
|
3
3
|
"version": "0.1.0",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"dev": "blocklet dev",
|
|
6
6
|
"start": "cross-env NODE_ENV=development nodemon api/dev.js -w api",
|
|
7
|
-
"clean": "node scripts/build-clean.
|
|
7
|
+
"clean": "node scripts/build-clean.mjs",
|
|
8
8
|
"bundle": "npm run bundle:client && npm run bundle:api",
|
|
9
9
|
"bundle:client": "vite build",
|
|
10
|
-
"bundle:api": "npm run clean && blocklet bundle --
|
|
10
|
+
"bundle:api": "npm run clean && blocklet bundle --compact --create-release",
|
|
11
11
|
"deploy": "npm run bundle && blocklet deploy .blocklet/bundle",
|
|
12
12
|
"upload": "npm run bundle && blocklet upload .blocklet/release/blocklet.json",
|
|
13
13
|
"lint": "eslint src api --ext .mjs,.js,.vue",
|
|
14
14
|
"lint:fix": "npm run lint -- --fix",
|
|
15
15
|
"deploy:child": "npm run bundle && blocklet deploy .blocklet/bundle --app-did=<%= did %>",
|
|
16
16
|
"dev:child": "blocklet dev --component --app-did=<%= did %>",
|
|
17
|
-
"prepare": "
|
|
17
|
+
"prepare": "npx simple-git-hooks",
|
|
18
18
|
"bump-version": "zx --quiet scripts/bump-version.mjs"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@arcblock/did-auth": "^1.18.
|
|
21
|
+
"@arcblock/did-auth": "^1.18.124",
|
|
22
22
|
"@arcblock/did-auth-storage-nedb": "^1.7.1",
|
|
23
|
-
"@blocklet/sdk": "^1.16.
|
|
24
|
-
"@ocap/client": "^1.18.
|
|
25
|
-
"@ocap/mcrypto": "^1.18.
|
|
26
|
-
"@ocap/wallet": "^1.18.
|
|
27
|
-
"axios": "^1.
|
|
23
|
+
"@blocklet/sdk": "^1.16.28",
|
|
24
|
+
"@ocap/client": "^1.18.124",
|
|
25
|
+
"@ocap/mcrypto": "^1.18.124",
|
|
26
|
+
"@ocap/wallet": "^1.18.124",
|
|
27
|
+
"axios": "^1.7.2",
|
|
28
28
|
"cookie-parser": "^1.4.6",
|
|
29
29
|
"cors": "^2.8.5",
|
|
30
|
-
"dotenv-flow": "^
|
|
31
|
-
"express": "^4.
|
|
32
|
-
"express-async-errors": "^3.1.1"
|
|
33
|
-
"vue": "^3.3.13"
|
|
30
|
+
"dotenv-flow": "^4.1.0",
|
|
31
|
+
"express": "^4.19.2",
|
|
32
|
+
"express-async-errors": "^3.1.1"
|
|
34
33
|
},
|
|
35
34
|
"devDependencies": {
|
|
36
|
-
"@
|
|
37
|
-
"
|
|
35
|
+
"@blocklet/js-sdk": "^1.16.28",
|
|
36
|
+
"@vitejs/plugin-vue": "^5.0.5",
|
|
37
|
+
"bumpp": "^9.4.1",
|
|
38
38
|
"cross-env": "^7.0.3",
|
|
39
|
-
"eslint": "^8.
|
|
40
|
-
"eslint-config-prettier": "^
|
|
41
|
-
"eslint-plugin-prettier": "^
|
|
42
|
-
"eslint-plugin-vue": "^9.
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"nodemon": "^3.0.2",
|
|
39
|
+
"eslint": "^8.57.0",
|
|
40
|
+
"eslint-config-prettier": "^9.1.0",
|
|
41
|
+
"eslint-plugin-prettier": "^5.1.3",
|
|
42
|
+
"eslint-plugin-vue": "^9.26.0",
|
|
43
|
+
"lint-staged": "^15.2.7",
|
|
44
|
+
"nodemon": "^3.1.4",
|
|
46
45
|
"npm-run-all": "^4.1.5",
|
|
47
|
-
"prettier": "^3.
|
|
48
|
-
"rimraf": "^
|
|
49
|
-
"
|
|
50
|
-
"vite
|
|
51
|
-
"
|
|
46
|
+
"prettier": "^3.3.2",
|
|
47
|
+
"rimraf": "^5.0.7",
|
|
48
|
+
"simple-git-hooks": "^2.11.1",
|
|
49
|
+
"vite": "^5.3.2",
|
|
50
|
+
"vite-plugin-blocklet": "^0.8.0",
|
|
51
|
+
"vue": "^3.4.31",
|
|
52
|
+
"zx": "^8.1.3"
|
|
52
53
|
},
|
|
53
54
|
"lint-staged": {
|
|
54
55
|
"*.{mjs,js,vue}": [
|
|
@@ -58,5 +59,8 @@
|
|
|
58
59
|
"*.{css,less,scss,json,graphql}": [
|
|
59
60
|
"prettier --write"
|
|
60
61
|
]
|
|
62
|
+
},
|
|
63
|
+
"simple-git-hooks": {
|
|
64
|
+
"pre-commit": "npx lint-staged"
|
|
61
65
|
}
|
|
62
66
|
}
|