@articles-media/articles-dev-box 1.0.36 → 1.0.38
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/README.md +3 -0
- package/dist/{Ad-BsG4C_lR.js → Ad-DluWOnz3.js} +2 -2
- package/dist/Ad.js +1 -1
- package/dist/GameMenu.js +1 -1
- package/dist/GameScoreboard.js +1 -1
- package/dist/GlobalBody.js +2 -2
- package/dist/SessionButton-D3cupnzD.js +102 -0
- package/dist/SessionButton.js +6 -69
- package/dist/{SettingsModal-DkLtzl7B.js → SettingsModal-DDrykvTH.js} +2 -1
- package/dist/SettingsModal.js +1 -1
- package/dist/{StatusModal-BXRbJQ10.js → StatusModal-DkHAimHp.js} +1 -1
- package/dist/getSignOutRedirectUrl.js +8 -0
- package/dist/index.js +7 -6
- package/package.json +2 -1
- /package/dist/{AdConfirmExitModal-heFPJNdX.js → AdConfirmExitModal-C4PR4e_i.js} +0 -0
- /package/dist/{AdDetailsModal-D2-4lh9e.js → AdDetailsModal-DNDxC0AS.js} +0 -0
- /package/dist/{GameMenu-DrqaN2Qg.js → GameMenu-CyW1MF3Y.js} +0 -0
- /package/dist/{GameScoreboard-DVoXXDnM.js → GameScoreboard-CYuTBE_E.js} +0 -0
- /package/dist/{useAuthSiteStatus-ZK1GbPBV.js → useAuthSiteStatus-D-D-KwEN.js} +0 -0
package/README.md
CHANGED
|
@@ -73,6 +73,8 @@ npm run dev
|
|
|
73
73
|
- Array of strings that every game published by Articles Media would want to normally exclude from persisting in base game store.
|
|
74
74
|
- typicalZustandStoreStateSlice
|
|
75
75
|
- Slice of zustand states that every game normally uses
|
|
76
|
+
- getSignOutRedirectUrl
|
|
77
|
+
- Handles signout redirect api logic
|
|
76
78
|
|
|
77
79
|
# Usage Examples
|
|
78
80
|
For newly developed components I sometimes find myself trying to remember what repos used it. Here is a short list of recent components developed and what project is using it. Doing this until AMPM can search by imports or enough projects adopted the component.
|
|
@@ -80,6 +82,7 @@ For newly developed components I sometimes find myself trying to remember what r
|
|
|
80
82
|
- typicalZustandStoreExcludes - Catching Game and School Run
|
|
81
83
|
- SessionButton - Catching Game and School Run
|
|
82
84
|
- GameMenu - Catching Game and School Run use Static Panel for sidebarStyle and Corner Button for menuBarStyle. Ice Slide uses Floating Panel for sidebarStyle and Bar for menuBarStyle.
|
|
85
|
+
- getSignOutRedirectUrl - Catching Game
|
|
83
86
|
|
|
84
87
|
# Roadmap
|
|
85
88
|
⏹️ Remove Bootstrap reliance?
|
|
@@ -279,8 +279,8 @@ var useAds = (params) => {
|
|
|
279
279
|
//#endregion
|
|
280
280
|
//#region src/components/Ads/Ad.jsx
|
|
281
281
|
var import_classnames = /* @__PURE__ */ __toESM(require_classnames(), 1);
|
|
282
|
-
var AdDetailsModal = lazy(() => import("./AdDetailsModal-
|
|
283
|
-
var AdConfirmExitModal = lazy(() => import("./AdConfirmExitModal-
|
|
282
|
+
var AdDetailsModal = lazy(() => import("./AdDetailsModal-DNDxC0AS.js"));
|
|
283
|
+
var AdConfirmExitModal = lazy(() => import("./AdConfirmExitModal-C4PR4e_i.js"));
|
|
284
284
|
function generateRandomInteger(min, max) {
|
|
285
285
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
286
286
|
}
|
package/dist/Ad.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Ad_default } from "./Ad-
|
|
1
|
+
import { t as Ad_default } from "./Ad-DluWOnz3.js";
|
|
2
2
|
export { Ad_default as default };
|
package/dist/GameMenu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as GameMenu } from "./GameMenu-
|
|
1
|
+
import { t as GameMenu } from "./GameMenu-CyW1MF3Y.js";
|
|
2
2
|
export { GameMenu as default };
|
package/dist/GameScoreboard.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as GameScoreboard } from "./GameScoreboard-
|
|
1
|
+
import { t as GameScoreboard } from "./GameScoreboard-CYuTBE_E.js";
|
|
2
2
|
export { GameScoreboard as default };
|
package/dist/GlobalBody.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { n as __toESM, t as require_classnames } from "./classnames-No-mjhw1.js";
|
|
3
|
-
import { n as useMainSiteStatus, t as useAuthSiteStatus } from "./useAuthSiteStatus-
|
|
3
|
+
import { n as useMainSiteStatus, t as useAuthSiteStatus } from "./useAuthSiteStatus-D-D-KwEN.js";
|
|
4
4
|
import { Suspense, lazy, memo, useState } from "react";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/Global/GlobalBody.jsx
|
|
7
7
|
var import_classnames = /* @__PURE__ */ __toESM(require_classnames(), 1);
|
|
8
|
-
var StatusModal = lazy(() => import("./StatusModal-
|
|
8
|
+
var StatusModal = lazy(() => import("./StatusModal-DkHAimHp.js"));
|
|
9
9
|
function GlobalBody(props) {
|
|
10
10
|
const [statusModal, setStatusModal] = useState(false);
|
|
11
11
|
const { data: mainSiteStatus, error: mainSiteStatusError, isLoading: mainSiteStatusLoading, mutate: mainSiteStatusMutate } = useMainSiteStatus({ disable: process.env.NODE_ENV !== "development" });
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { t as ArticlesButton } from "./Button-DvEZjsVV.js";
|
|
2
|
+
import SignInButton from "./SignInButton.js";
|
|
3
|
+
import useUserDetails from "./useUserDetails.js";
|
|
4
|
+
import useUserToken from "./useUserToken.js";
|
|
5
|
+
import { t as ViewUserModal } from "./ViewUserModal-Dgo1C4sR.js";
|
|
6
|
+
import FriendsList from "./FriendsList.js";
|
|
7
|
+
import { useState } from "react";
|
|
8
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Modal } from "react-bootstrap";
|
|
10
|
+
//#region src/components/User/SignOutModal.jsx
|
|
11
|
+
function SignOutModal({ show, setShow, action }) {
|
|
12
|
+
return /* @__PURE__ */ jsxs(Modal, {
|
|
13
|
+
show,
|
|
14
|
+
size: "md",
|
|
15
|
+
className: `articles-modal`,
|
|
16
|
+
centered: true,
|
|
17
|
+
onHide: () => setShow(false),
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx(Modal.Header, { children: /* @__PURE__ */ jsx(Modal.Title, { children: "Confirm Sign Out" }) }),
|
|
20
|
+
/* @__PURE__ */ jsx(Modal.Body, { children: "Are you sure you want to sign out? This will also sign you out on https://articles.media and other Articles Media services." }),
|
|
21
|
+
/* @__PURE__ */ jsxs(Modal.Footer, {
|
|
22
|
+
className: "justify-content-between",
|
|
23
|
+
children: [/* @__PURE__ */ jsxs(ArticlesButton, {
|
|
24
|
+
variant: "articles",
|
|
25
|
+
onClick: () => {
|
|
26
|
+
setShow(false);
|
|
27
|
+
},
|
|
28
|
+
children: [/* @__PURE__ */ jsx("i", { className: "fad fa-redo me-2" }), /* @__PURE__ */ jsx("span", { children: "Cancel" })]
|
|
29
|
+
}), /* @__PURE__ */ jsxs(ArticlesButton, {
|
|
30
|
+
variant: "articles",
|
|
31
|
+
onClick: () => {
|
|
32
|
+
action();
|
|
33
|
+
setShow(false);
|
|
34
|
+
},
|
|
35
|
+
children: [/* @__PURE__ */ jsx("i", { className: "fad fa-times me-2" }), "Confirm"]
|
|
36
|
+
})]
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/components/User/SessionButton.jsx
|
|
43
|
+
function SessionButton({ port, friendsButton }) {
|
|
44
|
+
const { data: userToken, error: userTokenError, isLoading: userTokenLoading, mutate: userTokenMutate } = useUserToken(port);
|
|
45
|
+
const { data: userDetails, error: userDetailsError, isLoading: userDetailsLoading, mutate: userDetailsMutate } = useUserDetails({ token: userToken });
|
|
46
|
+
const [showFriendsModal, setShowFriendsModal] = useState(false);
|
|
47
|
+
const [confirmSignOut, setConfirmSignOut] = useState(false);
|
|
48
|
+
return /* @__PURE__ */ jsx(Fragment, { children: !userDetails ? /* @__PURE__ */ jsx(SignInButton, { className: "mb-2" }) : /* @__PURE__ */ jsxs("div", {
|
|
49
|
+
className: "w-100 d-flex align-items-stretch mb-2",
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsx(ViewUserModal, {
|
|
52
|
+
buttonType: "Link",
|
|
53
|
+
className: "w-100",
|
|
54
|
+
children: /* @__PURE__ */ jsxs(ArticlesButton, {
|
|
55
|
+
className: "w-100",
|
|
56
|
+
small: true,
|
|
57
|
+
onClick: () => {
|
|
58
|
+
console.log("userDetails", userDetails);
|
|
59
|
+
},
|
|
60
|
+
children: [
|
|
61
|
+
/* @__PURE__ */ jsx("i", { className: "fad fa-sign-out" }),
|
|
62
|
+
"Logged in as ",
|
|
63
|
+
userDetails?.display_name || "Unknown User"
|
|
64
|
+
]
|
|
65
|
+
})
|
|
66
|
+
}),
|
|
67
|
+
confirmSignOut && /* @__PURE__ */ jsx(SignOutModal, {
|
|
68
|
+
show: confirmSignOut,
|
|
69
|
+
setShow: setConfirmSignOut,
|
|
70
|
+
action: () => {
|
|
71
|
+
const logoutLink = `/api/signout?redirect=${encodeURIComponent(window.location.href)}`;
|
|
72
|
+
window.location.assign(logoutLink);
|
|
73
|
+
}
|
|
74
|
+
}),
|
|
75
|
+
showFriendsModal && /* @__PURE__ */ jsx(FriendsList, {
|
|
76
|
+
show: showFriendsModal,
|
|
77
|
+
setShow: setShowFriendsModal,
|
|
78
|
+
componentType: "modal"
|
|
79
|
+
}),
|
|
80
|
+
friendsButton && /* @__PURE__ */ jsx(ArticlesButton, {
|
|
81
|
+
className: "",
|
|
82
|
+
small: true,
|
|
83
|
+
title: "My Friends",
|
|
84
|
+
onClick: () => {
|
|
85
|
+
setShowFriendsModal(true);
|
|
86
|
+
},
|
|
87
|
+
children: /* @__PURE__ */ jsx("i", { className: "fad fa-users" })
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ jsx(ArticlesButton, {
|
|
90
|
+
className: "",
|
|
91
|
+
small: true,
|
|
92
|
+
title: "Sign out",
|
|
93
|
+
onClick: () => {
|
|
94
|
+
setConfirmSignOut(true);
|
|
95
|
+
},
|
|
96
|
+
children: /* @__PURE__ */ jsx("i", { className: "fad fa-sign-out" })
|
|
97
|
+
})
|
|
98
|
+
]
|
|
99
|
+
}) });
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
export { SessionButton as t };
|
package/dist/SessionButton.js
CHANGED
|
@@ -1,70 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { useState } from "react";
|
|
8
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
//#region src/components/User/SessionButton.jsx
|
|
10
|
-
function SessionButton({ port, friendsButton }) {
|
|
11
|
-
const { data: userToken, error: userTokenError, isLoading: userTokenLoading, mutate: userTokenMutate } = useUserToken(port);
|
|
12
|
-
const { data: userDetails, error: userDetailsError, isLoading: userDetailsLoading, mutate: userDetailsMutate } = useUserDetails({ token: userToken });
|
|
13
|
-
const logoutLink = `/api/signout`;
|
|
14
|
-
const [showFriendsModal, setShowFriendsModal] = useState(false);
|
|
15
|
-
return /* @__PURE__ */ jsx(Fragment, { children: !userDetails ? /* @__PURE__ */ jsx(SignInButton, { className: "mb-2" }) : /* @__PURE__ */ jsxs("div", {
|
|
16
|
-
className: "w-100 d-flex align-items-stretch mb-2",
|
|
17
|
-
children: [
|
|
18
|
-
/* @__PURE__ */ jsx(ViewUserModal, {
|
|
19
|
-
buttonType: "Link",
|
|
20
|
-
className: "w-100",
|
|
21
|
-
children: /* @__PURE__ */ jsxs(ArticlesButton, {
|
|
22
|
-
className: "w-100",
|
|
23
|
-
small: true,
|
|
24
|
-
onClick: () => {
|
|
25
|
-
console.log("userDetails", userDetails);
|
|
26
|
-
},
|
|
27
|
-
children: [
|
|
28
|
-
/* @__PURE__ */ jsx("i", { className: "fad fa-sign-out" }),
|
|
29
|
-
"Logged in as ",
|
|
30
|
-
userDetails?.display_name || "Unknown User"
|
|
31
|
-
]
|
|
32
|
-
})
|
|
33
|
-
}),
|
|
34
|
-
showFriendsModal && /* @__PURE__ */ jsx(FriendsList, {
|
|
35
|
-
show: showFriendsModal,
|
|
36
|
-
setShow: setShowFriendsModal,
|
|
37
|
-
componentType: "modal"
|
|
38
|
-
}),
|
|
39
|
-
friendsButton && /* @__PURE__ */ jsx(ArticlesButton, {
|
|
40
|
-
className: "",
|
|
41
|
-
small: true,
|
|
42
|
-
title: "My Friends",
|
|
43
|
-
onClick: () => {
|
|
44
|
-
setShowFriendsModal(true);
|
|
45
|
-
},
|
|
46
|
-
children: /* @__PURE__ */ jsx("i", { className: "fad fa-users" })
|
|
47
|
-
}),
|
|
48
|
-
/* @__PURE__ */ jsx(ArticlesButton, {
|
|
49
|
-
className: "",
|
|
50
|
-
small: true,
|
|
51
|
-
title: "Sign out",
|
|
52
|
-
onClick: () => {
|
|
53
|
-
fetch(logoutLink, {
|
|
54
|
-
method: "GET",
|
|
55
|
-
headers: {}
|
|
56
|
-
}).then((response) => response.json()).then((data) => {
|
|
57
|
-
console.log("Logout successful:", data);
|
|
58
|
-
userTokenMutate(null);
|
|
59
|
-
userDetailsMutate(null);
|
|
60
|
-
}).catch((error) => {
|
|
61
|
-
console.error("Logout error:", error);
|
|
62
|
-
});
|
|
63
|
-
},
|
|
64
|
-
children: /* @__PURE__ */ jsx("i", { className: "fad fa-sign-out" })
|
|
65
|
-
})
|
|
66
|
-
]
|
|
67
|
-
}) });
|
|
68
|
-
}
|
|
69
|
-
//#endregion
|
|
1
|
+
"use client";
|
|
2
|
+
import "./SignInButton.js";
|
|
3
|
+
import "./useUserDetails.js";
|
|
4
|
+
import "./useUserToken.js";
|
|
5
|
+
import "./FriendsList.js";
|
|
6
|
+
import { t as SessionButton } from "./SessionButton-D3cupnzD.js";
|
|
70
7
|
export { SessionButton as default };
|
|
@@ -232,7 +232,7 @@ function OtherTab({ useStore, config }) {
|
|
|
232
232
|
var package_default = {
|
|
233
233
|
name: "@articles-media/articles-dev-box",
|
|
234
234
|
description: "Shared code, functions, and components for different Articles Media projects.",
|
|
235
|
-
version: "1.0.
|
|
235
|
+
version: "1.0.38",
|
|
236
236
|
type: "module",
|
|
237
237
|
imports: { "#root/src/*": "./src/*" },
|
|
238
238
|
main: "./dist/index.js",
|
|
@@ -266,6 +266,7 @@ var package_default = {
|
|
|
266
266
|
"./useFullscreen": "./dist/useFullscreen.js",
|
|
267
267
|
"./typicalZustandStoreExcludes": "./dist/typicalZustandStoreExcludes.js",
|
|
268
268
|
"./typicalZustandStoreStateSlice": "./dist/typicalZustandStoreStateSlice.js",
|
|
269
|
+
"./getSignOutRedirectUrl": "./dist/getSignOutRedirectUrl.js",
|
|
269
270
|
"./dist/style.css": "./dist/articles-dev-box.css",
|
|
270
271
|
"./dist/articles-dev-box.css": "./dist/articles-dev-box.css"
|
|
271
272
|
},
|
package/dist/SettingsModal.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SettingsModal } from "./SettingsModal-
|
|
1
|
+
import { t as SettingsModal } from "./SettingsModal-DDrykvTH.js";
|
|
2
2
|
export { SettingsModal as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as ArticlesButton } from "./Button-DvEZjsVV.js";
|
|
2
|
-
import { n as useMainSiteStatus, t as useAuthSiteStatus } from "./useAuthSiteStatus-
|
|
2
|
+
import { n as useMainSiteStatus, t as useAuthSiteStatus } from "./useAuthSiteStatus-D-D-KwEN.js";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { Modal } from "react-bootstrap";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
//#region src/util/getSignOutRedirectUrl.js
|
|
2
|
+
async function getSignOutRedirectUrl(req) {
|
|
3
|
+
const { searchParams } = new URL(req.url);
|
|
4
|
+
const passedRedirect = searchParams.get("redirect") || "/";
|
|
5
|
+
return `${process.env.NODE_ENV === "development" ? "http://localhost:3012" : "https://accounts.articles.media"}/api/signout?redirect=${encodeURIComponent(passedRedirect)}`;
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { getSignOutRedirectUrl as default };
|
package/dist/index.js
CHANGED
|
@@ -3,16 +3,16 @@ import SignInButton from "./SignInButton.js";
|
|
|
3
3
|
import useUserDetails from "./useUserDetails.js";
|
|
4
4
|
import useUserToken from "./useUserToken.js";
|
|
5
5
|
import { t as ViewUserModal } from "./ViewUserModal-Dgo1C4sR.js";
|
|
6
|
-
import { t as Ad_default } from "./Ad-
|
|
6
|
+
import { t as Ad_default } from "./Ad-DluWOnz3.js";
|
|
7
7
|
import useUserFriends from "./useUserFriends.js";
|
|
8
8
|
import FriendsList from "./FriendsList.js";
|
|
9
|
-
import SessionButton from "./SessionButton.js";
|
|
9
|
+
import { t as SessionButton } from "./SessionButton-D3cupnzD.js";
|
|
10
10
|
import ArticlesAd from "./ArticlesAd.js";
|
|
11
|
-
import { t as GameMenu } from "./GameMenu-
|
|
12
|
-
import { t as GameScoreboard } from "./GameScoreboard-
|
|
11
|
+
import { t as GameMenu } from "./GameMenu-CyW1MF3Y.js";
|
|
12
|
+
import { t as GameScoreboard } from "./GameScoreboard-CYuTBE_E.js";
|
|
13
13
|
import GlobalHead from "./GlobalHead.js";
|
|
14
14
|
import GlobalBody_default from "./GlobalBody.js";
|
|
15
|
-
import { t as SettingsModal } from "./SettingsModal-
|
|
15
|
+
import { t as SettingsModal } from "./SettingsModal-DDrykvTH.js";
|
|
16
16
|
import CreditsModal from "./CreditsModal.js";
|
|
17
17
|
import DarkModeHandler from "./DarkModeHandler.js";
|
|
18
18
|
import ToontownModeHandler from "./ToontownModeHandler.js";
|
|
@@ -20,4 +20,5 @@ import SocketServerUrlHandler from "./SocketServerUrlHandler.js";
|
|
|
20
20
|
import useFullscreen from "./useFullscreen.js";
|
|
21
21
|
import typicalZustandStoreExcludes from "./typicalZustandStoreExcludes.js";
|
|
22
22
|
import typicalZustandStoreStateSlice from "./typicalZustandStoreStateSlice.js";
|
|
23
|
-
|
|
23
|
+
import getSignOutRedirectUrl from "./getSignOutRedirectUrl.js";
|
|
24
|
+
export { Ad_default as Ad, ArticlesAd, CreditsModal, DarkModeHandler, FriendsList, GameMenu, GameScoreboard, GlobalBody_default as GlobalBody, GlobalHead, ReturnToLauncherButton, SessionButton, SettingsModal, SignInButton, SocketServerUrlHandler, ToontownModeHandler, ViewUserModal, getSignOutRedirectUrl, typicalZustandStoreExcludes, typicalZustandStoreStateSlice, useFullscreen, useUserDetails, useUserFriends, useUserToken };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@articles-media/articles-dev-box",
|
|
3
3
|
"description": "Shared code, functions, and components for different Articles Media projects.",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.38",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"imports": {
|
|
7
7
|
"#root/src/*": "./src/*"
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"./useFullscreen": "./dist/useFullscreen.js",
|
|
40
40
|
"./typicalZustandStoreExcludes": "./dist/typicalZustandStoreExcludes.js",
|
|
41
41
|
"./typicalZustandStoreStateSlice": "./dist/typicalZustandStoreStateSlice.js",
|
|
42
|
+
"./getSignOutRedirectUrl": "./dist/getSignOutRedirectUrl.js",
|
|
42
43
|
"./dist/style.css": "./dist/articles-dev-box.css",
|
|
43
44
|
"./dist/articles-dev-box.css": "./dist/articles-dev-box.css"
|
|
44
45
|
},
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|