Skip to content

Commit f0e10ff

Browse files
authored
feat: Logseq Pro page (#32)
* feat: initial pro * feat: WIP pro page * feat: WIP pro page * feat: WIP plans components for the pro page * feat: WIP tweets components for the pro page * feat: WIP tweets components for the pro page * enhance(ux): scroll to page top when header nav link * feat: WIP plans components for the pro page * feat: WIP plans components for the pro page * feat: WIP plans QA components for the pro page * feat: footer components for the pro page * feat(mobile): WIP UI adaptation * feat(mobile): WIP UI adaptation * feat(mobile): WIP UI adaptation * feat(mobile): WIP UI adaptation * feat(mobile): WIP UI adaptation * feat(mobile): polish UI adaptation * fix(mobile): layout for pro page * feat(mobile): polish UI adaptation * enhance(ui): contact us button * feat(pro): support web user login * feat(pro): load user pro state * feat(pro): load auth user to global state * enhance(dev): tools for state * enhance: test mode payment * enhance(dev): pnpm instead of yarn * enhance(dev): pnpm instead of yarn * enhance(dev): pnpm instead of yarn * enhance(dev): pnpm instead of yarn * feat(ux): test payment * feat(ux): test payment * fix: remove debug * enhance: lemon flow * enhance: lemon flow * fix: remove debug * enhance: amplify ui * enhance: amplify ui * enhance: amplify ui * enhance: amplify ui * enhance(ui): better response layout * enhance(ui): better response layout * fix: encode payment email when checkout lemon order * enhance(login): routes & login flow * enhance: login link * feat(ui): modals * feat(ui): WIP student discount modal content * feat(ui): WIP student discount modal content * feat(ui): WIP student discount modal content * feat(ui): dropdown component * feat(ui): animation for modal * feat(ui): interactions for discount support * feat(ui): WIP account page * feat(ux): scroll to top for each router page transition * enhance: payment flow * enhance(ux): payment flow * enhance(ux): payment flow * enhance(ux): payment flow * enhance(ux): better routes for payment flow * enhance(ux): auth state * fix(pro): label text from condition * feat(ui): WIP pro account * feat(ui): WIP the new pro account components * feat(ui): WIP account components * feat(ui): WIP account components * feat(ui): WIP subscriptions components * feat(ui): WIP subscriptions components * feat(ui): WIP subscriptions components * feat(ui): WIP subscriptions components * enhance: cancel subscriptions * enhance(ux): refresh subscriptions * enhance(ux): modals * enhance(ui): support on trial * enhance(ux): discount student modals * enhance(ux): polish discount student modals * enhance(ui): polish cards of the subscriptions * enhance(ui): polish cards of the subscriptions * enhance(ux): more actions for the subscriptions management * enhance(ux): start trial flow for new user * feat(ui): change account password * feat(ui): change account password * feat(ui): change account password * feat(ui): delete account * fix(ux): incorrect navigation for sign out * enhance(ux): pagination for the old subscriptions list * feat(ux): open in Desktop for authencation * enhance(ui): polish details of modal content * feat(ui): get invoice of the subscription * feat(ui): get invoice of the subscription * feat(ux): keep nested account route when reload * enhance(ui): valid links * enhance(ui): polish button styles * enhance(ui): polish account plan card * enhance(dev): tests * enhance(mobile): layout of account pane * enhance(mobile): ui of account pane * enhance(mobile): ui of account pane * enhance(mobile): ui of account pane * enhance(mobile): ui of account pane * enhance(mobile): subscriptions cards * enhance(ui): lock body when there active modals * enhance(mobile): responsive layouts * enhance(mobile): responsive layouts * feat(account): delete user * feat: terms page * feat: test prod * feat: test prod * feat: test prod * feat: test prod * enhance(ui): text correction * feat: add privacy policy link * enhance: update privacy policy route * enhance: update terms&privacy policy * chore: remove pro link * chore: links * chore: invalid routes
1 parent dd98a98 commit f0e10ff

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+21143
-1566
lines changed

.markedrc

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"marked": {
3+
"breaks": true,
4+
"pedantic": false,
5+
"mangle": false,
6+
"headerIds": false,
7+
"gfm": true,
8+
"tables": true,
9+
"sanitize": false,
10+
"smartLists": false,
11+
"smartypants": false,
12+
"xhtml": false
13+
}
14+
}

.parcelrc

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"extends": "@parcel/config-default",
3+
"transformers": {
4+
"*.md": [ "parcel-transformer-markdown", "..."]
5+
}
6+
}

assets/global.css

+77-8
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,17 @@ body {
9494

9595
&.app-link-active {
9696
@apply text-gray-300 font-semibold sm:opacity-100;
97+
98+
> * {
99+
@apply opacity-100;
100+
}
97101
}
98102
}
99103
}
100104

101105
.right-group {
102106
&-inner {
103-
@apply invisible absolute left-0 top-16 w-full
107+
@apply invisible absolute left-0 top-[54px] w-full
104108
flex-col space-x-0 items-center px-2 pb-6 opacity-0 transition-opacity duration-300
105109
sm:flex sm:flex-row sm:top-0 sm:sticky sm:opacity-100 sm:visible
106110
sm:px-0 sm:space-x-6 sm:pb-0 sm:translate-y-0;
@@ -157,25 +161,26 @@ body {
157161

158162
.app-logo-embossed {
159163
background: linear-gradient(to right, #0E2A35, #0E2A35) content-box content-box,
160-
linear-gradient(to bottom, rgba(133,200,200,0.1), rgba(133,200,200,0), rgba(0,0,0,0.2)) border-box,
161-
#0E2A35 border-box;
164+
linear-gradient(to bottom, rgba(133, 200, 200, 0.1), rgba(133, 200, 200, 0), rgba(0, 0, 0, 0.2)) border-box,
165+
#0E2A35 border-box;
162166
padding: 2px;
163167
display: grid;
164168
place-items: center;
165169
border-radius: 16px;
166-
filter: drop-shadow(0px 4px 16px rgba(133, 200, 200, 0.2))
167-
drop-shadow(0px 8px 6px rgba(133, 200, 200, 0.1));
170+
filter: drop-shadow(0px 4px 16px rgba(133, 200, 200, 0.2)) drop-shadow(0px 8px 6px rgba(133, 200, 200, 0.1));
168171
transition: filter 300ms ease-out;
169172

170173
}
171174

175+
.app-terms {
176+
padding-top: 80px;
177+
}
178+
172179
.dockify-app-logo:hover .app-logo-embossed {
173180
cursor: pointer;
174-
filter: drop-shadow(0px 4px 16px rgba(133, 200, 200, 0.3))
175-
drop-shadow(0px 8px 6px rgba(133, 200, 200, 0.2));
181+
filter: drop-shadow(0px 4px 16px rgba(133, 200, 200, 0.3)) drop-shadow(0px 8px 6px rgba(133, 200, 200, 0.2));
176182
}
177183

178-
179184
.app-privacy-banner {
180185
@apply fixed left-0 bottom-0 right-0 p-6 flex justify-center
181186
z-50 bg-logseq-300/10 backdrop-blur-5xl;
@@ -189,3 +194,67 @@ body {
189194
}
190195
}
191196
}
197+
198+
.ui-modal {
199+
@apply fixed w-screen h-screen flex justify-center
200+
top-0 left-0 z-50 bg-black/50 overflow-auto py-10;
201+
202+
&.hidden {
203+
@apply !hidden;
204+
}
205+
206+
&-inner {
207+
@apply relative m-auto;
208+
}
209+
210+
&-content {
211+
@apply relative bg-logseq-700 border border-logseq-600 rounded-xl
212+
w-[90vw] max-w-[840px] min-h-[600px] p-6;
213+
}
214+
215+
&-close {
216+
@apply absolute top-6 right-6 opacity-60 hover:opacity-80
217+
cursor-pointer active:opacity-50 select-none;
218+
}
219+
220+
&.as-confirm {
221+
.ui-modal-content {
222+
@apply min-h-[180px] max-w-[700px];
223+
}
224+
225+
.ui-modal-inner {
226+
@apply top-[-50px] animate-in zoom-in duration-300;
227+
}
228+
}
229+
230+
&-container-locked {
231+
overflow-y: hidden;
232+
}
233+
}
234+
235+
.ui-dropdown {
236+
@apply relative;
237+
238+
.sub-items {
239+
transform-origin: top;
240+
transform: scaleY(0);
241+
min-width: 270px;
242+
display: flex;
243+
244+
&-inner {
245+
@apply border bg-logseq-600 rounded-md overflow-hidden
246+
border-logseq-400 p-1;
247+
248+
> a {
249+
@apply select-none cursor-pointer rounded-md
250+
pl-3 pr-2 py-1.5 hover:bg-logseq-400/80 transition-all;
251+
}
252+
}
253+
}
254+
255+
&.is-active {
256+
.sub-items {
257+
transform: scaleY(1);
258+
}
259+
}
260+
}

index.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
</head>
3535
<body>
3636
<div id="root"></div>
37-
<script src="./src/main.tsx" type="module"></script>
37+
<script src="https://assets.lemonsqueezy.com/lemon.js" defer></script>
38+
<script src="./src/main.tsx" type="module" defer></script>
3839
</body>
3940
</html>

package.json

+36-20
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,55 @@
44
"description": "Logseq web site project.",
55
"license": "MIT",
66
"scripts": {
7-
"dev": "parcel ./index.html --host 0.0.0.0 --public-url http://localhost:1234/",
7+
"dev": "rm -rf .parcel-cache && parcel ./index.html --public-url http://localhost:1234/",
88
"build": "rm -rf ./dist && parcel build ./index.html --public-url $PUBLIC_URL && mkdir -p ./dist/public && cp -rf ./public/* ./dist/public",
99
"dev:cloudflare": "wrangler2 dev"
1010
},
1111
"devDependencies": {
12-
"@cloudflare/workers-types": "4.20221111.1",
12+
"@cloudflare/workers-types": "4.20230807.0",
1313
"@types/cookie": "^0.5.1",
14-
"@types/js-cookie": "^3.0.2",
15-
"@types/react": "18.0.26",
16-
"@types/react-dom": "18.0.10",
17-
"parcel": "2.8.2",
18-
"postcss": "8.4.20",
19-
"postcss-nesting": "10.2.0",
14+
"@types/js-cookie": "3.0.3",
15+
"@types/react": "18.2.20",
16+
"@types/react-dom": "18.2.7",
17+
"buffer": "6.0.3",
18+
"core-js-pure": "^3.32.1",
19+
"events": "^3.1.0",
20+
"parcel": "2.9.3",
21+
"parcel-transformer-markdown": "^3.0.0",
22+
"postcss": "8.4.27",
23+
"postcss-nesting": "12.0.1",
2024
"process": "^0.11.10",
21-
"tailwindcss": "3.2.4",
22-
"tailwindcss-animate": "^1.0.5",
25+
"prop-types": "^15.8.1",
26+
"punycode": "2.3.0",
27+
"querystring-es3": "^0.2.1",
28+
"tailwindcss": "3.3.3",
29+
"tailwindcss-animate": "1.0.6",
2330
"tailwindcss-border-gradient-radius": "^3.0.1",
2431
"typescript": "4.9.4",
25-
"wrangler": "2.6.2"
32+
"url": "^0.11.0",
33+
"wrangler": "3.5.0"
2634
},
2735
"dependencies": {
28-
"@hookstate/core": "4.0.0",
36+
"@aws-amplify/ui": "^5.7.2",
37+
"@aws-amplify/ui-react": "5.3.0",
38+
"@hookstate/core": "4.0.1",
39+
"@phosphor-icons/react": "2.0.10",
40+
"aws-amplify": "5.3.7",
41+
"camelcase": "8.0.0",
2942
"classnames": "2.3.2",
3043
"cookie": "^0.5.0",
31-
"js-cookie": "^3.0.1",
32-
"phosphor-react": "1.4.1",
33-
"photoswipe": "5.3.4",
44+
"copy-to-clipboard": "3.3.3",
45+
"js-cookie": "3.0.5",
46+
"photoswipe": "5.3.8",
3447
"platform-detect": "3.0.1",
3548
"react": "18.2.0",
36-
"react-dom": "18.2.0",
37-
"react-hot-toast": "^2.4.0",
38-
"react-intersection-observer": "9.4.1",
39-
"react-router-dom": "6.6.1",
40-
"swiper": "8.4.5"
49+
"react-avatar": "5.0.3",
50+
"react-datepicker": "4.17.0",
51+
"react-dom": "^18.2.0",
52+
"react-hot-toast": "2.4.1",
53+
"react-intersection-observer": "9.5.2",
54+
"react-router-dom": "6.15.0",
55+
"react-spinners": "0.13.8",
56+
"swiper": "10.1.0"
4157
}
4258
}

0 commit comments

Comments
 (0)