@bbki.ng/site 5.1.3 → 5.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @bbki.ng/site
2
2
 
3
+ ## 5.2.0
4
+
5
+ ## 5.1.4
6
+
3
7
  ## 5.1.3
4
8
 
5
9
  ## 5.1.2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bbki.ng/site",
3
- "version": "5.1.3",
3
+ "version": "5.2.0",
4
4
  "description": "code behind bbki.ng",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -20,8 +20,8 @@
20
20
  "sonner": "1.4.0",
21
21
  "swr": "^2.2.5",
22
22
  "vaul": "1.1.2",
23
- "@bbki.ng/components": "5.1.2",
24
- "@bbki.ng/stylebase": "3.0.1"
23
+ "@bbki.ng/components": "5.2.0",
24
+ "@bbki.ng/stylebase": "3.1.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@mdx-js/mdx": "2.0.0-next.9",
@@ -59,7 +59,7 @@
59
59
  "vite-plugin-mdx": "^3.5.8",
60
60
  "vite-plugin-pwa": "0.19",
61
61
  "workbox-window": "^6.3.0",
62
- "@bbki.ng/stylebase": "3.0.1"
62
+ "@bbki.ng/stylebase": "3.1.0"
63
63
  },
64
64
  "author": "bbbottle",
65
65
  "license": "MIT",
@@ -4,6 +4,7 @@ import { ROUTES } from "@/constants";
4
4
  import classNames from "classnames";
5
5
  import { Reaction } from "../reaction/oh_reaction";
6
6
  import { useNavigate } from "react-router-dom";
7
+ import { ShareBtn } from "../share/share-btn";
7
8
 
8
9
  export type ArticlePageProps = {
9
10
  tags?: string[];
@@ -43,7 +44,7 @@ export const ArticlePage = (props: ArticlePageProps) => {
43
44
  <article className={articleCls}>{props.children}</article>
44
45
  <div className="relative left-[-4px]">
45
46
  {allTags.length ? <Tags tags={allTags} className="mb-32" /> : null}
46
- <Reaction title={title} />
47
+ <Reaction title={title} url={window.location.href} />
47
48
  </div>
48
49
  </Article>
49
50
  <div className="">
@@ -8,6 +8,7 @@ import React, {
8
8
  import { GlobalLoadingContext } from "@/context/global_loading_state_provider";
9
9
  import { BlinkDot } from "@bbki.ng/components";
10
10
  import { faces, hearts, ReactionEmojiPair, sadFaces } from "./emojis";
11
+ import { ShareBtn } from "../share/share-btn";
11
12
 
12
13
  declare global {
13
14
  namespace JSX {
@@ -86,12 +87,19 @@ export const OpenHeartReaction = (props: {
86
87
  );
87
88
  };
88
89
 
89
- export const Reaction = (props: { title: string }) => {
90
+ export const Reaction = (props: { title: string; url: string }) => {
90
91
  return (
91
92
  <div>
92
93
  <OpenHeartReaction title={props.title} emojiPair={hearts} />
93
94
  <OpenHeartReaction title={props.title} emojiPair={faces} />
94
95
  <OpenHeartReaction title={props.title} emojiPair={sadFaces} />
96
+
97
+ <ShareBtn
98
+ shareInfo={{
99
+ title: props.title,
100
+ url: props.url,
101
+ }}
102
+ />
95
103
  </div>
96
104
  );
97
105
  };
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import { Button, ButtonType } from "@bbki.ng/components";
3
+ import { ShareIcon } from "./share-icon";
4
+ import { toast } from "sonner";
5
+
6
+ export const ShareBtn = ({ shareInfo }: { shareInfo: ShareData }) => {
7
+ const handleShare = async () => {
8
+ try {
9
+ await navigator.share(shareInfo);
10
+ toast.success("已分享");
11
+ } catch (error) {
12
+ const isAbortError = (error as Error).name === "AbortError";
13
+ if (isAbortError) {
14
+ return;
15
+ }
16
+
17
+ toast.error((error as Error).message);
18
+ }
19
+ };
20
+
21
+ return (
22
+ <Button type={ButtonType.GHOST} onClick={handleShare}>
23
+ <ShareIcon />
24
+ </Button>
25
+ );
26
+ };
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+
3
+ export const ShareIcon = () => (
4
+ <svg
5
+ data-testid="geist-icon"
6
+ height="12"
7
+ stroke-linejoin="round"
8
+ // style="color:currentColor"
9
+ viewBox="0 0 16 16"
10
+ className="text-gray-400 hover:text-gray-600 transition-colors ease-in duration-200"
11
+ width="12"
12
+ >
13
+ <path
14
+ fill-rule="evenodd"
15
+ clip-rule="evenodd"
16
+ d="M7.29289 1.39644C7.68342 1.00592 8.31658 1.00592 8.70711 1.39644L11.7803 4.46966L12.3107 4.99999L11.25 6.06065L10.7197 5.53032L8.75 3.56065V10.25V11H7.25V10.25V3.56065L5.28033 5.53032L4.75 6.06065L3.68934 4.99999L4.21967 4.46966L7.29289 1.39644ZM13.5 9.24999V13.5H2.5V9.24999V8.49999H1V9.24999V14C1 14.5523 1.44771 15 2 15H14C14.5523 15 15 14.5523 15 14V9.24999V8.49999H13.5V9.24999Z"
17
+ fill="currentColor"
18
+ ></path>
19
+ </svg>
20
+ );
package/dev-dist/sw.js DELETED
@@ -1,134 +0,0 @@
1
- /**
2
- * Copyright 2018 Google Inc. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- * http://www.apache.org/licenses/LICENSE-2.0
7
- * Unless required by applicable law or agreed to in writing, software
8
- * distributed under the License is distributed on an "AS IS" BASIS,
9
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
- * See the License for the specific language governing permissions and
11
- * limitations under the License.
12
- */
13
-
14
- // If the loader is already loaded, just stop.
15
- if (!self.define) {
16
- let registry = {};
17
-
18
- // Used for `eval` and `importScripts` where we can't get script URL by other means.
19
- // In both cases, it's safe to use a global var because those functions are synchronous.
20
- let nextDefineUri;
21
-
22
- const singleRequire = (uri, parentUri) => {
23
- uri = new URL(uri + ".js", parentUri).href;
24
- return registry[uri] || (
25
-
26
- new Promise(resolve => {
27
- if ("document" in self) {
28
- const script = document.createElement("script");
29
- script.src = uri;
30
- script.onload = resolve;
31
- document.head.appendChild(script);
32
- } else {
33
- nextDefineUri = uri;
34
- importScripts(uri);
35
- resolve();
36
- }
37
- })
38
-
39
- .then(() => {
40
- let promise = registry[uri];
41
- if (!promise) {
42
- throw new Error(`Module ${uri} didn’t register its module`);
43
- }
44
- return promise;
45
- })
46
- );
47
- };
48
-
49
- self.define = (depsNames, factory) => {
50
- const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href;
51
- if (registry[uri]) {
52
- // Module is already loading or loaded.
53
- return;
54
- }
55
- let exports = {};
56
- const require = depUri => singleRequire(depUri, uri);
57
- const specialDeps = {
58
- module: { uri },
59
- exports,
60
- require
61
- };
62
- registry[uri] = Promise.all(depsNames.map(
63
- depName => specialDeps[depName] || require(depName)
64
- )).then(deps => {
65
- factory(...deps);
66
- return exports;
67
- });
68
- };
69
- }
70
- define(['./workbox-baccbcc1'], (function (workbox) { 'use strict';
71
-
72
- /**
73
- * Welcome to your Workbox-powered service worker!
74
- *
75
- * You'll need to register this file in your web app.
76
- * See https://goo.gl/nhQhGp
77
- *
78
- * The rest of the code is auto-generated. Please don't update this file
79
- * directly; instead, make changes to your Workbox build configuration
80
- * and re-run your build process.
81
- * See https://goo.gl/2aRDsh
82
- */
83
-
84
- self.addEventListener('message', event => {
85
- if (event.data && event.data.type === 'SKIP_WAITING') {
86
- self.skipWaiting();
87
- }
88
- });
89
- /**
90
- * The precacheAndRoute() method efficiently caches and responds to
91
- * requests for URLs in the manifest.
92
- * See https://goo.gl/S9QRab
93
- */
94
-
95
- workbox.precacheAndRoute([{
96
- "url": "index.html",
97
- "revision": "0.mm62s9haf0g"
98
- }], {});
99
- workbox.cleanupOutdatedCaches();
100
- workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
101
- allowlist: [/^\/$/]
102
- }));
103
- workbox.registerRoute(/^https:\/\/zjh-im-res\.oss-cn-shenzhen\.aliyuncs\.com\/.*/i, new workbox.CacheFirst({
104
- "cacheName": "oss-resource-cache",
105
- plugins: [new workbox.ExpirationPlugin({
106
- maxEntries: 100,
107
- maxAgeSeconds: 31536000
108
- }), new workbox.CacheableResponsePlugin({
109
- statuses: [0, 200]
110
- })]
111
- }), 'GET');
112
- workbox.registerRoute(/new-content-handler/, ({
113
- event,
114
- data
115
- }) => {
116
- const url = new URL(event.request.url);
117
- const sharedContent = url.searchParams.get("text");
118
-
119
- if (sharedContent) {
120
- window.postMessage(sharedContent, {});
121
- }
122
- }, 'GET');
123
- workbox.registerRoute(/^https:\/\/fonts\.gstatic.com\.com\/.*/i, new workbox.CacheFirst({
124
- "cacheName": "fonts",
125
- plugins: [new workbox.ExpirationPlugin({
126
- maxEntries: 100,
127
- maxAgeSeconds: 31536000
128
- }), new workbox.CacheableResponsePlugin({
129
- statuses: [0, 200]
130
- })]
131
- }), 'GET');
132
-
133
- }));
134
- //# sourceMappingURL=sw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sw.js","sources":["../../../../../../private/var/folders/8d/2l3nv27s4pg6784pvbkj0j3h0000gn/T/5e1dfee6688e96632a9cbea5141de672/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-routing@7.0.0/node_modules/workbox-routing/registerRoute.mjs';\nimport {ExpirationPlugin as workbox_expiration_ExpirationPlugin} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-expiration@7.0.0/node_modules/workbox-expiration/ExpirationPlugin.mjs';\nimport {CacheableResponsePlugin as workbox_cacheable_response_CacheableResponsePlugin} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-cacheable-response@7.0.0/node_modules/workbox-cacheable-response/CacheableResponsePlugin.mjs';\nimport {CacheFirst as workbox_strategies_CacheFirst} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-strategies@7.0.0/node_modules/workbox-strategies/CacheFirst.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-precaching@7.0.0/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-precaching@7.0.0/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-routing@7.0.0/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/Users/bbbottle/Code/bottle/node_modules/.pnpm/workbox-precaching@7.0.0/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"index.html\",\n \"revision\": \"0.mm62s9haf0g\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"index.html\"), {\n allowlist: [/^\\/$/],\n \n}));\n\n\nworkbox_routing_registerRoute(/^https:\\/\\/zjh-im-res\\.oss-cn-shenzhen\\.aliyuncs\\.com\\/.*/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"oss-resource-cache\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 100, maxAgeSeconds: 31536000 }), new workbox_cacheable_response_CacheableResponsePlugin({ statuses: [ 0, 200 ] })] }), 'GET');\nworkbox_routing_registerRoute(/new-content-handler/, ({ event, data }) => {\n const url = new URL(event.request.url);\n const sharedContent = url.searchParams.get(\"text\");\n if (sharedContent) {\n window.postMessage(sharedContent, {});\n }\n }, 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.gstatic.com\\.com\\/.*/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"fonts\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 100, maxAgeSeconds: 31536000 }), new workbox_cacheable_response_CacheableResponsePlugin({ statuses: [ 0, 200 ] })] }), 'GET');\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","workbox_precaching_cleanupOutdatedCaches","workbox_routing_registerRoute","workbox_routing_NavigationRoute","workbox_precaching_createHandlerBoundToURL","allowlist","workbox_strategies_CacheFirst","plugins","workbox_expiration_ExpirationPlugin","maxEntries","maxAgeSeconds","workbox_cacheable_response_CacheableResponsePlugin","statuses","url","URL","request","sharedContent","searchParams","get","window","postMessage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAO0N,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1N,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AA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"}