@civic/auth 0.0.1-beta.26 → 0.0.1-beta.27
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/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +286 -345
- package/dist/cjs/src/nextjs/index.d.ts +1 -1
- package/dist/cjs/src/nextjs/index.d.ts.map +1 -1
- package/dist/cjs/src/nextjs/index.js +1 -3
- package/dist/cjs/src/nextjs/index.js.map +1 -1
- package/dist/cjs/src/reactjs/components/UserButton.d.ts.map +1 -1
- package/dist/cjs/src/reactjs/components/UserButton.js +25 -12
- package/dist/cjs/src/reactjs/components/UserButton.js.map +1 -1
- package/dist/cjs/src/reactjs/hooks/index.d.ts +0 -1
- package/dist/cjs/src/reactjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/src/reactjs/hooks/index.js +1 -3
- package/dist/cjs/src/reactjs/hooks/index.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/nextjs/index.d.ts +1 -1
- package/dist/esm/src/nextjs/index.d.ts.map +1 -1
- package/dist/esm/src/nextjs/index.js +1 -1
- package/dist/esm/src/nextjs/index.js.map +1 -1
- package/dist/esm/src/reactjs/components/UserButton.d.ts.map +1 -1
- package/dist/esm/src/reactjs/components/UserButton.js +26 -13
- package/dist/esm/src/reactjs/components/UserButton.js.map +1 -1
- package/dist/esm/src/reactjs/hooks/index.d.ts +0 -1
- package/dist/esm/src/reactjs/hooks/index.d.ts.map +1 -1
- package/dist/esm/src/reactjs/hooks/index.js +0 -1
- package/dist/esm/src/reactjs/hooks/index.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/src/nextjs/index.d.ts +1 -1
- package/dist/src/nextjs/index.d.ts.map +1 -1
- package/dist/src/nextjs/index.js +1 -1
- package/dist/src/nextjs/index.js.map +1 -1
- package/dist/src/reactjs/components/UserButton.d.ts.map +1 -1
- package/dist/src/reactjs/components/UserButton.js +26 -13
- package/dist/src/reactjs/components/UserButton.js.map +1 -1
- package/dist/src/reactjs/hooks/index.d.ts +0 -1
- package/dist/src/reactjs/hooks/index.d.ts.map +1 -1
- package/dist/src/reactjs/hooks/index.js +0 -1
- package/dist/src/reactjs/hooks/index.js.map +1 -1
- package/dist/src/shared/lib/util.d.ts.map +1 -1
- package/dist/src/shared/lib/util.js +0 -2
- package/dist/src/shared/lib/util.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/vitest.config.js +3 -3
- package/dist/vitest.config.js.map +1 -1
- package/package.json +4 -4
- package/src/nextjs/index.ts +1 -5
- package/src/reactjs/components/UserButton.tsx +34 -10
- package/src/reactjs/hooks/index.ts +0 -1
- package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +0 -1
- package/src/nextjs/client/index.ts +0 -4
package/dist/vitest.config.js
CHANGED
|
@@ -29,10 +29,10 @@ export default defineConfig({
|
|
|
29
29
|
reportsDirectory: "../../coverage/apps/civic-auth-client",
|
|
30
30
|
provider: "v8",
|
|
31
31
|
thresholds: {
|
|
32
|
-
lines:
|
|
33
|
-
functions:
|
|
32
|
+
lines: 80,
|
|
33
|
+
functions: 70,
|
|
34
34
|
branches: 85,
|
|
35
|
-
statements:
|
|
35
|
+
statements: 80,
|
|
36
36
|
},
|
|
37
37
|
},
|
|
38
38
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,eAAe,YAAY,CAAC;IAC1B,OAAO,EAAE;QACP,KAAK,EAAE;YACL,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SACtC;KACF;IAED,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,CAAC,uDAAuD,CAAC;QAClE,GAAG,EAAE;YACH,QAAQ,EAAE,aAAa;SACxB;QACD,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,oBAAoB;gBACpB,YAAY;gBACZ,aAAa;gBACb,oBAAoB;gBACpB,oBAAoB;gBACpB,cAAc;gBACd,gBAAgB;gBAChB,kBAAkB;aACnB;YACD,gBAAgB,EAAE,uCAAuC;YACzD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE;aACf;SACF;KACF;CACF,CAAC,CAAC","sourcesContent":["/// <reference types='vitest' />\nimport { defineConfig } from \"vite\";\nimport path from \"path\";\n\nexport default defineConfig({\n resolve: {\n alias: {\n \"@\": path.resolve(__dirname, \"./src\"),\n },\n },\n\n test: {\n globals: true,\n environment: \"jsdom\",\n include: [\"test/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}\"],\n env: {\n NODE_ENV: \"development\",\n },\n reporters: [\"default\"],\n coverage: {\n exclude: [\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n \"postcss.config.cjs\",\n \"tailwind.config.js\",\n \".eslintrc.js\",\n \"tsup.config.ts\",\n \"vitest.config.ts\",\n ],\n reportsDirectory: \"../../coverage/apps/civic-auth-client\",\n provider: \"v8\",\n thresholds: {\n lines:
|
|
1
|
+
{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,eAAe,YAAY,CAAC;IAC1B,OAAO,EAAE;QACP,KAAK,EAAE;YACL,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC;SACtC;KACF;IAED,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,CAAC,uDAAuD,CAAC;QAClE,GAAG,EAAE;YACH,QAAQ,EAAE,aAAa;SACxB;QACD,SAAS,EAAE,CAAC,SAAS,CAAC;QACtB,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,oBAAoB;gBACpB,YAAY;gBACZ,aAAa;gBACb,oBAAoB;gBACpB,oBAAoB;gBACpB,cAAc;gBACd,gBAAgB;gBAChB,kBAAkB;aACnB;YACD,gBAAgB,EAAE,uCAAuC;YACzD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,EAAE;gBACZ,UAAU,EAAE,EAAE;aACf;SACF;KACF;CACF,CAAC,CAAC","sourcesContent":["/// <reference types='vitest' />\nimport { defineConfig } from \"vite\";\nimport path from \"path\";\n\nexport default defineConfig({\n resolve: {\n alias: {\n \"@\": path.resolve(__dirname, \"./src\"),\n },\n },\n\n test: {\n globals: true,\n environment: \"jsdom\",\n include: [\"test/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}\"],\n env: {\n NODE_ENV: \"development\",\n },\n reporters: [\"default\"],\n coverage: {\n exclude: [\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n \"postcss.config.cjs\",\n \"tailwind.config.js\",\n \".eslintrc.js\",\n \"tsup.config.ts\",\n \"vitest.config.ts\",\n ],\n reportsDirectory: \"../../coverage/apps/civic-auth-client\",\n provider: \"v8\",\n thresholds: {\n lines: 80,\n functions: 70,\n branches: 85,\n statements: 80,\n },\n },\n },\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@civic/auth",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.27",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"main": "dist/index.ts",
|
|
@@ -89,8 +89,8 @@
|
|
|
89
89
|
"vite": "^5.4.8",
|
|
90
90
|
"vite-plugin-dts": "^4.2.3",
|
|
91
91
|
"vitest": "^2.1.2",
|
|
92
|
-
"@repo/
|
|
93
|
-
"@repo/
|
|
92
|
+
"@repo/eslint-config": "0.0.0",
|
|
93
|
+
"@repo/typescript-config": "0.0.0"
|
|
94
94
|
},
|
|
95
95
|
"peerDependencies": {
|
|
96
96
|
"next": "^14"
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
"prepublish": "pnpm build",
|
|
103
103
|
"dev": "tsc --watch",
|
|
104
104
|
"test": "vitest",
|
|
105
|
-
"lint": "eslint \"src/**/*.ts*\"",
|
|
105
|
+
"lint": "eslint \"src/**/*.ts*\" --max-warnings 0",
|
|
106
106
|
"lint:fix": "pnpm lint --fix",
|
|
107
107
|
"clean": "rm -rf .turbo dist node_modules",
|
|
108
108
|
"test:update": "vitest --update"
|
package/src/nextjs/index.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
createCivicAuthPlugin,
|
|
3
|
-
defaultAuthConfig,
|
|
4
|
-
resolveAuthConfig,
|
|
5
|
-
} from "@/nextjs/config.js";
|
|
1
|
+
export { createCivicAuthPlugin } from "@/nextjs/config.js";
|
|
6
2
|
export { getUser } from "@/nextjs/GetUser.js";
|
|
7
3
|
export { handler } from "@/nextjs/routeHandler.js";
|
|
8
4
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useUser } from "@/reactjs/hooks/index.js";
|
|
3
3
|
import type { DisplayMode } from "@/types.js";
|
|
4
|
-
import React, { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
5
5
|
|
|
6
6
|
const ChevronDown = () => (
|
|
7
7
|
<svg
|
|
@@ -45,12 +45,26 @@ const UserButton = ({
|
|
|
45
45
|
className?: string;
|
|
46
46
|
}) => {
|
|
47
47
|
const [isOpen, setIsOpen] = useState(false);
|
|
48
|
+
const [buttonWidth, setButtonWidth] = useState<number | null>(null);
|
|
48
49
|
const { user, signIn, signOut } = useUser();
|
|
50
|
+
const buttonRef = useRef<HTMLButtonElement>(null);
|
|
51
|
+
const dropdownRef = useRef<HTMLDivElement>(null);
|
|
52
|
+
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (buttonRef.current) {
|
|
55
|
+
setButtonWidth(buttonRef.current.offsetWidth);
|
|
56
|
+
}
|
|
57
|
+
}, [isOpen]);
|
|
49
58
|
|
|
50
59
|
const handleClickOutside = useCallback((event: MouseEvent) => {
|
|
51
60
|
const target = event.target as HTMLElement;
|
|
52
61
|
|
|
53
|
-
if (
|
|
62
|
+
if (
|
|
63
|
+
buttonRef.current &&
|
|
64
|
+
dropdownRef.current &&
|
|
65
|
+
!buttonRef.current.contains(target) &&
|
|
66
|
+
!dropdownRef.current.contains(target)
|
|
67
|
+
) {
|
|
54
68
|
setIsOpen(false);
|
|
55
69
|
}
|
|
56
70
|
}, []);
|
|
@@ -89,11 +103,15 @@ const UserButton = ({
|
|
|
89
103
|
|
|
90
104
|
if (user) {
|
|
91
105
|
return (
|
|
92
|
-
<div
|
|
106
|
+
<div
|
|
107
|
+
style={{ position: "relative", width: "auto" }}
|
|
108
|
+
id="civic-dropdown-container"
|
|
109
|
+
>
|
|
93
110
|
<button
|
|
111
|
+
ref={buttonRef}
|
|
94
112
|
style={{
|
|
95
113
|
display: "flex",
|
|
96
|
-
|
|
114
|
+
minWidth: "10rem",
|
|
97
115
|
alignItems: "center",
|
|
98
116
|
justifyContent: "space-between",
|
|
99
117
|
gap: "0.5rem",
|
|
@@ -104,15 +122,17 @@ const UserButton = ({
|
|
|
104
122
|
transition: "background-color 0.2s",
|
|
105
123
|
}}
|
|
106
124
|
className={className}
|
|
107
|
-
onClick={() =>
|
|
125
|
+
onClick={() => {
|
|
126
|
+
setIsOpen((isOpen) => !isOpen);
|
|
127
|
+
}}
|
|
108
128
|
>
|
|
109
129
|
{user?.picture ? (
|
|
110
130
|
<span
|
|
111
131
|
style={{
|
|
112
132
|
position: "relative",
|
|
113
133
|
display: "flex",
|
|
114
|
-
height: "
|
|
115
|
-
width: "
|
|
134
|
+
height: "1.5rem",
|
|
135
|
+
width: "1.5rem",
|
|
116
136
|
flexShrink: 0,
|
|
117
137
|
gap: "0.5rem",
|
|
118
138
|
overflow: "hidden",
|
|
@@ -131,16 +151,19 @@ const UserButton = ({
|
|
|
131
151
|
|
|
132
152
|
<span>{user?.name || user?.email}</span>
|
|
133
153
|
|
|
134
|
-
|
|
154
|
+
<div style={{ pointerEvents: "none" }}>
|
|
155
|
+
{isOpen ? <ChevronUp /> : <ChevronDown />}
|
|
156
|
+
</div>
|
|
135
157
|
</button>
|
|
136
158
|
<div
|
|
159
|
+
ref={dropdownRef}
|
|
137
160
|
style={
|
|
138
161
|
isOpen
|
|
139
162
|
? {
|
|
140
163
|
position: "absolute",
|
|
141
|
-
|
|
164
|
+
left: 0,
|
|
165
|
+
width: buttonWidth || "auto",
|
|
142
166
|
marginTop: "0.5rem",
|
|
143
|
-
width: "100%",
|
|
144
167
|
borderRadius: "0.5rem",
|
|
145
168
|
backgroundColor: "white",
|
|
146
169
|
padding: "0.5rem 0",
|
|
@@ -173,6 +196,7 @@ const UserButton = ({
|
|
|
173
196
|
|
|
174
197
|
return (
|
|
175
198
|
<button
|
|
199
|
+
ref={buttonRef}
|
|
176
200
|
data-testid="sign-in-button"
|
|
177
201
|
style={{
|
|
178
202
|
borderRadius: "9999px",
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { useUser } from "@/reactjs/hooks/useUser.js";
|
|
2
|
-
export { useUserCookie } from "@/nextjs/hooks/useUserCookie.js";
|
|
3
2
|
export { useToken } from "@/shared/hooks/useToken.js";
|
|
4
3
|
export { useAuth } from "@/shared/hooks/useAuth.js";
|
|
5
4
|
export { useSession } from "@/shared/hooks/useSession.js";
|