@civic/auth 0.0.1-tsc.alpha.2 → 0.0.1-tsc.alpha.3
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-lint.log +7 -0
- package/.turbo/turbo-test.log +1442 -0
- 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/src/shared/lib/util.d.ts.map +1 -1
- package/dist/cjs/src/shared/lib/util.js +0 -2
- package/dist/cjs/src/shared/lib/util.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/src/shared/lib/util.d.ts.map +1 -1
- package/dist/esm/src/shared/lib/util.js +0 -2
- package/dist/esm/src/shared/lib/util.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 +1 -1
- package/src/nextjs/index.ts +0 -2
- package/src/reactjs/components/UserButton.tsx +34 -10
- package/src/reactjs/hooks/index.ts +0 -1
- package/src/shared/lib/util.ts +0 -3
- package/test/unit/nextjs/{routeHandler.test.ts → routeHandler.test.ts.skipped} +1 -1
- package/test/unit/publicApi/__snapshots__/apiSnapshot.test.ts.snap +0 -1
- package/vitest.config.ts +3 -3
- 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
package/src/nextjs/index.ts
CHANGED
|
@@ -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";
|
package/src/shared/lib/util.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
// Utility functions shared by auth server and client integrations
|
|
2
|
-
// Typically these functions should be used inside AuthenticationInitiator and AuthenticationResolver implementations
|
|
3
|
-
|
|
4
1
|
// Utility functions shared by auth server and client integrations
|
|
5
2
|
// Typically these functions should be used inside AuthenticationInitiator and AuthenticationResolver implementations
|
|
6
3
|
import type {
|
package/vitest.config.ts
CHANGED
|
@@ -31,10 +31,10 @@ export default defineConfig({
|
|
|
31
31
|
reportsDirectory: "../../coverage/apps/civic-auth-client",
|
|
32
32
|
provider: "v8",
|
|
33
33
|
thresholds: {
|
|
34
|
-
lines:
|
|
35
|
-
functions:
|
|
34
|
+
lines: 80,
|
|
35
|
+
functions: 70,
|
|
36
36
|
branches: 85,
|
|
37
|
-
statements:
|
|
37
|
+
statements: 80,
|
|
38
38
|
},
|
|
39
39
|
},
|
|
40
40
|
},
|