eleven-solutions-common-website-unique-web 21.0.56 → 22.0.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.
Files changed (61) hide show
  1. package/dist/App.d.ts +0 -3
  2. package/dist/App.js +0 -2
  3. package/dist/components/admin/Sidebar.d.ts +0 -1
  4. package/dist/components/admin/Sidebar.js +2 -2
  5. package/dist/components/admin/UserForm.js +1 -1
  6. package/dist/components/admin/Users.js +2 -2
  7. package/dist/components/footer/Footer.d.ts +3 -2
  8. package/dist/components/footer/Footer.js +2 -3
  9. package/dist/components/index.d.ts +3 -2
  10. package/dist/components/index.js +3 -2
  11. package/dist/components/login/GoogleButton.js +4 -1
  12. package/dist/components/login/Header.d.ts +3 -1
  13. package/dist/components/login/Header.js +135 -31
  14. package/dist/components/login/Login.d.ts +2 -1
  15. package/dist/components/login/Login.js +15 -65
  16. package/dist/components/login/Setcookie.d.ts +2 -0
  17. package/dist/components/login/Setcookie.js +7 -0
  18. package/dist/components/redux/slices/types/types.d.ts +3 -0
  19. package/dist/components/redux/slices/types/types.js +1 -0
  20. package/dist/components/redux/slices/userSlice.d.ts +20 -0
  21. package/dist/components/redux/slices/userSlice.js +90 -0
  22. package/dist/components/useraccount/UpdateUserDetails.d.ts +1 -0
  23. package/dist/components/useraccount/UpdateUserDetails.js +15 -22
  24. package/package.json +8 -4
  25. package/.github/workflows/main.yml +0 -22
  26. package/azure-pipelines.yml +0 -20
  27. package/dist/components/Navbar.d.ts +0 -6
  28. package/dist/components/Navbar.js +0 -5
  29. package/dist/components/login/View.d.ts +0 -2
  30. package/dist/components/login/View.js +0 -10
  31. package/dist/components/useraccount/AddMissingDetails.d.ts +0 -9
  32. package/dist/components/useraccount/AddMissingDetails.js +0 -56
  33. package/dist/components/useraccount/AddUserDetails.d.ts +0 -9
  34. package/dist/components/useraccount/AddUserDetails.js +0 -21
  35. package/src/App.tsx +0 -21
  36. package/src/components/Navbar.tsx +0 -21
  37. package/src/components/admin/Dashboard.tsx +0 -7
  38. package/src/components/admin/Editor.tsx +0 -25
  39. package/src/components/admin/Sidebar.tsx +0 -102
  40. package/src/components/admin/Taxionomies.tsx +0 -314
  41. package/src/components/admin/TaxonomyForm.tsx +0 -744
  42. package/src/components/admin/Template.tsx +0 -304
  43. package/src/components/admin/TemplateForm.tsx +0 -141
  44. package/src/components/admin/UserForm.tsx +0 -231
  45. package/src/components/admin/Users.tsx +0 -479
  46. package/src/components/api/api.ts +0 -59
  47. package/src/components/api/taxonomy.ts +0 -201
  48. package/src/components/api/template.ts +0 -114
  49. package/src/components/api/updateuser.ts +0 -53
  50. package/src/components/api/user.ts +0 -133
  51. package/src/components/footer/Footer.tsx +0 -128
  52. package/src/components/footer/Privacy.tsx +0 -82
  53. package/src/components/footer/Terms.tsx +0 -156
  54. package/src/components/index.ts +0 -19
  55. package/src/components/login/GoogleButton.tsx +0 -85
  56. package/src/components/login/Header.tsx +0 -340
  57. package/src/components/login/Login.tsx +0 -277
  58. package/src/components/useraccount/AddUserDetails.tsx +0 -136
  59. package/src/components/useraccount/UpdateUserDetails.tsx +0 -214
  60. package/src/index.ts +0 -1
  61. package/tsconfig.json +0 -15
@@ -1,18 +1,12 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
2
  import { useState } from "react";
12
- import { loginApi, registerApi } from "../api/api";
13
- import Cookies from "universal-cookie";
3
+ // import Cookies from "universal-cookie";
14
4
  import GoogleButton from "./GoogleButton";
15
- const Login = ({ ModalOpen, closeModal, url, isDarkMode }) => {
5
+ import { loginUser, registerUser } from "../redux/slices/userSlice";
6
+ // import { Dispatch } from "@reduxjs/toolkit";
7
+ import { useDispatch } from "react-redux";
8
+ // import { AppDispatch } from "../redux/slices/types/types";
9
+ const Login = ({ ModalOpen, closeModal, url, isDarkMode, img }) => {
16
10
  const [isLoginMode, setIsLoginMode] = useState(true);
17
11
  const [email, setEmail] = useState("");
18
12
  const [password, setPassword] = useState("");
@@ -23,62 +17,18 @@ const Login = ({ ModalOpen, closeModal, url, isDarkMode }) => {
23
17
  const [loading] = useState(false);
24
18
  const [error, setError] = useState(null);
25
19
  const [successMessage, setSuccessMessage] = useState(null);
26
- const cookies = new Cookies();
20
+ // const cookies = new Cookies();
27
21
  const toggleMode = () => setIsLoginMode(!isLoginMode);
28
- const handleLogin = (e) => __awaiter(void 0, void 0, void 0, function* () {
29
- var _a;
22
+ const dispatch = useDispatch(); // Typing the dispatch with AppDispatch
23
+ const handleLogin = (e) => {
30
24
  e.preventDefault();
31
- try {
32
- const response = yield loginApi(url, email, password);
33
- if (!response) {
34
- console.log("please try again after some time");
35
- }
36
- else {
37
- if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.token) {
38
- cookies.set("authToken", response.data.token, { maxAge: 86400 });
39
- window.location.href = "/home";
40
- }
41
- }
42
- console.log(response.data.token);
43
- }
44
- catch (err) {
45
- console.error("Error during login:", err);
46
- setError("Error during login");
47
- }
48
- });
49
- const handleRegister = (e) => __awaiter(void 0, void 0, void 0, function* () {
25
+ dispatch(loginUser(url, email, password));
26
+ };
27
+ const handleRegister = (e) => {
50
28
  e.preventDefault();
51
- if (password !== confirmPassword) {
52
- setError("Passwords do not match.");
53
- return;
54
- }
55
- if (!termsAccepted) {
56
- setError("You must accept the terms and conditions.");
57
- return;
58
- }
59
- const emailRegex = /^[a-zA-Z0-9._%+-]+@gmail\.com$/;
60
- if (!emailRegex.test(email)) {
61
- setError("Email must be a valid @gmail.com address.");
62
- return;
63
- }
64
- try {
65
- const response = yield registerApi(url, name, email, mobile, confirmPassword);
66
- console.log("res", response);
67
- if (response) {
68
- cookies.set("authToken", response, { maxAge: 86400 });
69
- window.location.href = "/home";
70
- setSuccessMessage("Registration successful!");
71
- }
72
- else {
73
- setError("Registration failed. Please try again.");
74
- }
75
- }
76
- catch (error) {
77
- console.error("Error during registration:");
78
- setError("An error occurred during registration.");
79
- }
80
- });
81
- return (_jsx("div", { className: `${isDarkMode ? "bg-[#2e2e2e] text-[#ffff]" : "bg-[#ffff] text-black"}`, children: ModalOpen && (_jsx("div", { className: "fixed inset-0 flex items-center justify-center z-50 bg-black bg-opacity-50 transition-opacity duration-75 ease-in-out ", children: _jsxs("div", { className: `relative ${isDarkMode ? "bg-[#2e2e2e]" : "bg-white"} p-4 sm:p-6 lg:p-8 rounded-lg max-w-sm sm:max-w-md w-full shadow-lg transform transition-all duration-500 ease-in-out `, children: [_jsx("button", { onClick: closeModal, className: ` absolute top-1 right-3 text-3xl ${isDarkMode ? " text-[#ffff]" : " text-black"}`, children: "\u00D7" }), _jsx("img", { className: "h-16 w-20 mx-auto animate-fadeIn", src: "images/BarelviLogo.png", alt: "Logo" }), _jsx("h1", { className: `mt-3 text-xl sm:text-2xl font-semibold capitalize text-center ${isDarkMode ? "text-[#ffff]" : "text-black"}`, children: isLoginMode ? "Sign In" : "Sign Up" }), _jsxs("form", { onSubmit: isLoginMode ? handleLogin : handleRegister, children: [!isLoginMode && (_jsxs(_Fragment, { children: [_jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "text", value: name, onChange: (e) => setName(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Full Name", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "tel", value: mobile, onChange: (e) => setMobile(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Mobile Number", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "email", value: email, onChange: (e) => setEmail(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Email address", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "password", value: password, onChange: (e) => setPassword(e.target.value), className: "block w-full px-3 sm:px-6 py-2 text-gray-700 bg-white border rounded-lg dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Password", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Confirm Password", required: true }) }), _jsx("div", { className: "mt-4", children: _jsxs("label", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", checked: termsAccepted, onChange: () => setTermsAccepted(!termsAccepted), className: "form-checkbox cursor-pointer" }), _jsxs("span", { className: "ml-2 text-sm text-gray-600 dark:text-gray-300", children: ["I accept the", " ", _jsx("button", { className: "text-blue-500 hover:underline", children: "terms and conditions" })] })] }) })] })), isLoginMode && (_jsxs(_Fragment, { children: [_jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "email", value: email, onChange: (e) => setEmail(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-900 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Email address", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "password", value: password, onChange: (e) => setPassword(e.target.value), className: "block w-full px-3 sm:px-6 py-2 text-gray-700 bg-white border rounded-lg dark:bg-gray-900 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Password", required: true }) })] })), _jsx("div", { className: "mt-6", children: _jsx("button", { type: "submit", disabled: loading, className: "w-full px-6 py-2 text-sm font-medium tracking-wide text-white capitalize transition-colors duration-300 transform bg-blue-500 rounded-lg hover:bg-blue-400 focus:outline-none focus:ring focus:ring-blue-300 focus:ring-opacity-50", children: loading
29
+ dispatch(registerUser(url, name, email, mobile, confirmPassword));
30
+ };
31
+ return (_jsx("div", { className: `${isDarkMode ? "bg-[#2e2e2e] text-[#ffff]" : "bg-[#ffff] text-black"}`, children: ModalOpen && (_jsx("div", { className: "fixed inset-0 flex items-center justify-center z-50 bg-black bg-opacity-50 transition-opacity duration-75 ease-in-out ", children: _jsxs("div", { className: `relative ${isDarkMode ? "bg-[#2e2e2e]" : "bg-white"} p-4 sm:p-6 lg:p-8 rounded-lg max-w-sm sm:max-w-md w-full shadow-lg transform transition-all duration-500 ease-in-out `, children: [_jsx("button", { onClick: closeModal, className: ` absolute top-1 right-3 text-3xl ${isDarkMode ? " text-[#ffff]" : " text-black"}`, children: "\u00D7" }), _jsx("img", { className: "h-20 w-20 mx-auto animate-fadeIn", src: img, alt: "Logo" }), _jsx("h1", { className: `mt-3 text-xl sm:text-2xl font-semibold capitalize text-center ${isDarkMode ? "text-[#ffff]" : "text-black"}`, children: isLoginMode ? "Sign In" : "Sign Up" }), _jsxs("form", { onSubmit: isLoginMode ? handleLogin : handleRegister, children: [!isLoginMode && (_jsxs(_Fragment, { children: [_jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "text", value: name, onChange: (e) => setName(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Full Name", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "tel", value: mobile, onChange: (e) => setMobile(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Mobile Number", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "email", value: email, onChange: (e) => setEmail(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Email address", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "password", value: password, onChange: (e) => setPassword(e.target.value), className: "block w-full px-3 sm:px-6 py-2 text-gray-700 bg-white border rounded-lg dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Password", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "password", value: confirmPassword, onChange: (e) => setConfirmPassword(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Confirm Password", required: true }) }), _jsx("div", { className: "mt-4", children: _jsxs("label", { className: "flex items-center", children: [_jsx("input", { type: "checkbox", checked: termsAccepted, onChange: () => setTermsAccepted(!termsAccepted), className: "form-checkbox cursor-pointer" }), _jsxs("span", { className: "ml-2 text-sm text-gray-600 dark:text-gray-300", children: ["I accept the", " ", _jsx("button", { className: "text-blue-500 hover:underline", children: "terms and conditions" })] })] }) })] })), isLoginMode && (_jsxs(_Fragment, { children: [_jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "email", value: email, onChange: (e) => setEmail(e.target.value), className: "block w-full py-2 text-gray-700 bg-white border rounded-lg px-3 sm:px-6 dark:bg-gray-900 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Email address", required: true }) }), _jsx("div", { className: "relative flex items-center mt-4", children: _jsx("input", { type: "password", value: password, onChange: (e) => setPassword(e.target.value), className: "block w-full px-3 sm:px-6 py-2 text-gray-700 bg-white border rounded-lg dark:bg-gray-900 dark:text-gray-300 dark:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40", placeholder: "Password", required: true }) })] })), _jsx("div", { className: "mt-6", children: _jsx("button", { type: "submit", disabled: loading, className: "w-full px-6 py-2 text-sm font-medium tracking-wide text-white capitalize transition-colors duration-300 transform bg-blue-500 rounded-lg hover:bg-blue-400 focus:outline-none focus:ring focus:ring-blue-300 focus:ring-opacity-50", children: loading
82
32
  ? isLoginMode
83
33
  ? "Logging in..."
84
34
  : "Registering..."
@@ -0,0 +1,2 @@
1
+ declare const setCookie: (token: string) => void;
2
+ export default setCookie;
@@ -0,0 +1,7 @@
1
+ import Cookies from "universal-cookie";
2
+ const setCookie = (token) => {
3
+ const cookies = new Cookies();
4
+ cookies.set("authToken", token, { maxAge: 86400 });
5
+ window.location.href = "/home";
6
+ };
7
+ export default setCookie;
@@ -0,0 +1,3 @@
1
+ import { Dispatch } from "@reduxjs/toolkit";
2
+ import { AnyAction } from "redux";
3
+ export type AppDispatch = Dispatch<AnyAction>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ import { AppDispatch } from "./types/types";
2
+ interface ProfileData {
3
+ id: string;
4
+ name: string | null;
5
+ mobile: string | null;
6
+ email: string;
7
+ address: string | null;
8
+ roleType: number;
9
+ }
10
+ interface UserState {
11
+ profileData: ProfileData | null;
12
+ successMessage: string | null;
13
+ errorMessage: string | null;
14
+ isLoading: boolean;
15
+ }
16
+ export declare const setProfileData: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ProfileData, "user/setProfileData">, clearProfileData: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"user/clearProfileData">, setErrorMessage: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, "user/setErrorMessage">, setSuccessMessage: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, "user/setSuccessMessage">, setLoading: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<boolean, "user/setLoading">;
17
+ export declare const loginUser: (url: string, email: string, password: string) => (dispatch: AppDispatch) => Promise<void>;
18
+ export declare const registerUser: (url: string, name: string, email: string, mobile: string, confirmPassword: string) => (dispatch: AppDispatch) => Promise<void>;
19
+ declare const _default: import("redux").Reducer<UserState>;
20
+ export default _default;
@@ -0,0 +1,90 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ // commonRepo/features/user/userSlice.ts
11
+ import { createSlice } from "@reduxjs/toolkit";
12
+ import Cookies from "universal-cookie";
13
+ import { loginApi, registerApi } from "../../api/api";
14
+ import setCookie from "../../login/Setcookie";
15
+ const cookies = new Cookies();
16
+ const initialState = {
17
+ profileData: null,
18
+ successMessage: null,
19
+ errorMessage: null,
20
+ isLoading: false,
21
+ };
22
+ const userSlice = createSlice({
23
+ name: "user",
24
+ initialState,
25
+ reducers: {
26
+ setProfileData: (state, action) => {
27
+ state.profileData = action.payload;
28
+ },
29
+ clearProfileData: (state) => {
30
+ state.profileData = null;
31
+ state.successMessage = "Logged out successfully!";
32
+ cookies.remove("authToken", { path: "/" });
33
+ window.location.href = "/home";
34
+ },
35
+ setErrorMessage: (state, action) => {
36
+ state.errorMessage = action.payload;
37
+ },
38
+ setSuccessMessage: (state, action) => {
39
+ state.successMessage = action.payload;
40
+ },
41
+ setLoading: (state, action) => {
42
+ state.isLoading = action.payload;
43
+ },
44
+ },
45
+ });
46
+ export const { setProfileData, clearProfileData, setErrorMessage, setSuccessMessage, setLoading, } = userSlice.actions;
47
+ export const loginUser = (url, email, password) => (dispatch) => __awaiter(void 0, void 0, void 0, function* () {
48
+ var _a;
49
+ dispatch(setLoading(true));
50
+ try {
51
+ const response = yield loginApi(url, email, password);
52
+ if ((_a = response === null || response === void 0 ? void 0 : response.data) === null || _a === void 0 ? void 0 : _a.token) {
53
+ // cookies.set("authToken", response.data.token, { maxAge: 86400 });
54
+ setCookie(response.data.token);
55
+ console.log(response);
56
+ dispatch(setProfileData(Object.assign(Object.assign({}, response.data), { token: response.data.token })));
57
+ dispatch(setSuccessMessage("Login successful!"));
58
+ window.location.href = "/home";
59
+ }
60
+ else {
61
+ dispatch(setErrorMessage("Login failed. Please try again."));
62
+ }
63
+ }
64
+ catch (error) {
65
+ console.error("Error during login:", error);
66
+ dispatch(setErrorMessage("An error occurred during login."));
67
+ }
68
+ dispatch(setLoading(false));
69
+ });
70
+ export const registerUser = (url, name, email, mobile, confirmPassword) => (dispatch) => __awaiter(void 0, void 0, void 0, function* () {
71
+ dispatch(setLoading(true));
72
+ try {
73
+ const response = yield registerApi(url, name, email, mobile, confirmPassword);
74
+ if (response) {
75
+ // cookies.set("authToken", response, { maxAge: 86400 });
76
+ setCookie(response.data.token);
77
+ dispatch(setSuccessMessage("Registration successful!"));
78
+ // window.location.href = "/home";
79
+ }
80
+ else {
81
+ dispatch(setErrorMessage("Registration failed. Please try again."));
82
+ }
83
+ }
84
+ catch (error) {
85
+ console.error("Error during registration:", error);
86
+ dispatch(setErrorMessage("An error occurred during registration."));
87
+ }
88
+ dispatch(setLoading(false));
89
+ });
90
+ export default userSlice.reducer;
@@ -4,6 +4,7 @@ interface UpdateUserDetailsProps {
4
4
  closeusermodal: () => void;
5
5
  url: string;
6
6
  isDarkMode: boolean;
7
+ userdetails: any;
7
8
  }
8
9
  declare const UpdateUserDetails: React.FC<UpdateUserDetailsProps>;
9
10
  export default UpdateUserDetails;
@@ -9,35 +9,28 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { useState, useEffect } from "react";
12
- import { updateProfileApi, getProfileApi } from "../api/updateuser";
12
+ import { updateProfileApi } from "../api/updateuser";
13
13
  import Cookies from "universal-cookie";
14
- const UpdateUserDetails = ({ usermodalopen, closeusermodal, url, isDarkMode, }) => {
14
+ const UpdateUserDetails = ({ usermodalopen, closeusermodal, url, isDarkMode, userdetails, }) => {
15
15
  var _a;
16
16
  const [name, setName] = useState("");
17
17
  const [mobile, setMobile] = useState("");
18
18
  const [address, setAddress] = useState("");
19
- const [user, setUser] = useState(undefined);
19
+ const [user, setUser] = useState(null);
20
20
  const cookies = new Cookies();
21
21
  const token = cookies.get("authToken");
22
22
  const userToken = ((_a = token === null || token === void 0 ? void 0 : token.data) === null || _a === void 0 ? void 0 : _a.token) || token;
23
+ // const dispatch = useDispatch();
24
+ // console.log("in update", JSON.stringify(userdetails, null, 2));
23
25
  useEffect(() => {
24
- const fetchUserProfile = () => __awaiter(void 0, void 0, void 0, function* () {
25
- if (usermodalopen && userToken && !user) {
26
- try {
27
- const userProfile = yield getProfileApi(userToken, url);
28
- if (userProfile) {
29
- setUser(userProfile);
30
- setName(userProfile.name);
31
- setMobile(userProfile.mobile);
32
- setAddress(userProfile.address);
33
- }
34
- }
35
- catch (error) {
36
- console.error("Error fetching user profile:", error);
37
- }
38
- }
39
- });
40
- fetchUserProfile();
26
+ // const fetchUserProfile = async () => {
27
+ // try {
28
+ // const userProfile = await getProfileApi(userToken, url);
29
+ if (userdetails) {
30
+ setName(userdetails.name || "");
31
+ setMobile(userdetails.mobile || "");
32
+ setAddress(userdetails.address || "");
33
+ }
41
34
  }, [usermodalopen, userToken, user]);
42
35
  const validateForm = () => {
43
36
  if (!name || !mobile || !address) {
@@ -80,11 +73,11 @@ const UpdateUserDetails = ({ usermodalopen, closeusermodal, url, isDarkMode, })
80
73
  };
81
74
  if (!usermodalopen)
82
75
  return null;
83
- return (_jsx("div", { className: `fixed inset-0 flex items-center justify-center ${isDarkMode ? "bg-gray-800 bg-opacity-90" : "bg-gray-500 bg-opacity-75"}`, children: _jsxs("div", { className: `rounded-lg p-6 w-full max-w-md relative ${isDarkMode
76
+ return (_jsx("div", { onClick: closeusermodal, className: `fixed z-50 inset-0 flex items-center justify-center ${isDarkMode ? "bg-gray-800 bg-opacity-90" : "bg-gray-500 bg-opacity-75"}`, children: _jsxs("div", { onClick: (e) => e.stopPropagation(), className: `rounded-lg p-6 w-full max-w-md relative ${isDarkMode
84
77
  ? "border border-gray-300 bg-[#242424] text-white"
85
78
  : "bg-white text-black"}`, children: [_jsx("button", { onClick: closeusermodal, className: `absolute top-3 right-3 ${isDarkMode
86
79
  ? "text-gray-300 hover:text-gray-500"
87
- : "text-gray-400 hover:text-gray-600"} text-2xl`, children: "\u00D7" }), _jsx("h3", { className: "text-center text-xl font-bold mb-4", children: "Update User Details" }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Name" }), _jsx("input", { type: "text", placeholder: "Name", value: name, onChange: handleNameChange, className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
80
+ : "text-gray-400 hover:text-gray-600"} text-3xl`, children: "\u00D7" }), _jsx("h3", { className: "text-center text-xl font-bold mb-4", children: "Update User Details" }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Name" }), _jsx("input", { type: "text", placeholder: "Name", value: name, onChange: handleNameChange, className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
88
81
  ? "bg-gray-800 border-gray-700 text-white "
89
82
  : "border-gray-300 "}` })] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Mobile" }), _jsx("input", { type: "tel", placeholder: "Mobile", value: mobile, onChange: handleMobileChange, className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
90
83
  ? "bg-gray-800 border-gray-700 text-white "
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "eleven-solutions-common-website-unique-web",
3
- "version": "21.0.56",
3
+ "version": "22.0.0",
4
4
  "main": "./dist/index.js",
5
+ "files": [
6
+ "dist"
7
+ ],
5
8
  "scripts": {
6
9
  "build": "tsc",
7
10
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -10,8 +13,8 @@
10
13
  "license": "ISC",
11
14
  "description": "",
12
15
  "peerDependencies": {
13
- "react": "^18.3.1",
14
- "react-dom": "^18.3.1"
16
+ "react": ">=18.3.1 <20",
17
+ "react-dom": ">=18.3.1 <20"
15
18
  },
16
19
  "devDependencies": {
17
20
  "@types/axios": "^0.9.36",
@@ -21,10 +24,11 @@
21
24
  },
22
25
  "dependencies": {
23
26
  "@react-oauth/google": "^0.12.1",
27
+ "@reduxjs/toolkit": "^2.3.0",
24
28
  "@tabler/icons-react": "^3.21.0",
25
- "eleven-solutions-common-website-unique-web": "^12.0.2",
26
29
  "jodit-react": "^4.1.2",
27
30
  "react-icons": "^5.3.0",
31
+ "react-redux": "^9.1.2",
28
32
  "react-router-dom": "^6.27.0",
29
33
  "universal-cookie": "^7.2.2"
30
34
  }
@@ -1,22 +0,0 @@
1
- name: Node.js Package
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
-
8
- jobs:
9
- publish-gpr:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v2
13
- - uses: actions/setup-node@v3
14
- with:
15
- node-version: '14' # Consider using a newer version than 12
16
- registry-url: 'https://npm.pkg.github.com'
17
- scope: '@11SolutionsPvtLtd'
18
- - run: npm install
19
- - run: npm run build # Run build if needed before publish
20
- - run: npm publish
21
- env:
22
- NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
@@ -1,20 +0,0 @@
1
- # Node.js with React
2
- # Build a Node.js project that uses React.
3
- # Add steps that analyze code, save build artifacts, deploy, and more:
4
- # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
5
-
6
- trigger:
7
- - main
8
-
9
- pool: Azure Pipelines
10
-
11
- steps:
12
- - task: NodeTool@0
13
- inputs:
14
- versionSpec: '20.x'
15
- displayName: 'Install Node.js'
16
-
17
- - script: |
18
- npm install
19
- npm run build
20
- displayName: 'npm install and build'
@@ -1,6 +0,0 @@
1
- import React from "react";
2
- interface NavbarProps {
3
- name: string;
4
- }
5
- declare const Navbar: React.FC<NavbarProps>;
6
- export default Navbar;
@@ -1,5 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- const Navbar = ({ name }) => {
3
- return (_jsxs("div", { className: "bg-gray-800 text-white p-4 text-center text-lg", children: [name, _jsx("button", { onClick: () => (window.location.href = "/footer"), className: "ml-4 p-2 bg-blue-500 rounded", children: "Go to Footer" })] }));
4
- };
5
- export default Navbar;
@@ -1,2 +0,0 @@
1
- declare const View: () => any;
2
- export default View;
@@ -1,10 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState } from "react";
3
- const View = () => {
4
- const [variable, setVariable] = useState("I'm a variable");
5
- const [counter, setCounter] = useState(0);
6
- const [isVisible, setIsVisible] = useState(true);
7
- const [userName, setUserName] = useState("Guest");
8
- return (_jsxs("div", { children: [_jsx("h1", { children: "Hello from form-viewer-comp" }), _jsx("p", { children: variable }), _jsxs("div", { children: [_jsxs("h2", { children: ["Counter: ", counter] }), _jsx("button", { onClick: () => setCounter(counter + 1), children: "Increase Counter" })] }), _jsxs("div", { children: [_jsxs("h2", { children: ["Visibility: ", isVisible ? "Visible" : "Hidden"] }), _jsx("button", { onClick: () => setIsVisible(!isVisible), children: "Toggle Visibility" })] }), _jsxs("div", { children: [_jsxs("h2", { children: ["User Name: ", userName] }), _jsx("button", { onClick: () => setUserName("New User"), children: "Change User Name" })] })] }));
9
- };
10
- export default View;
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- interface AddMissingDetailsProps {
3
- usermodalopen: boolean;
4
- closeusermodal: () => void;
5
- url: string;
6
- isDarkMode: boolean;
7
- }
8
- declare const AddMissingDetails: React.FC<AddMissingDetailsProps>;
9
- export default AddMissingDetails;
@@ -1,56 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- import { useState, useEffect } from "react";
12
- import { getProfileApi } from "../api/updateuser";
13
- import Cookies from "universal-cookie";
14
- const AddMissingDetails = ({ usermodalopen, closeusermodal, url, isDarkMode, }) => {
15
- var _a;
16
- const [name, setName] = useState("");
17
- const [mobile, setMobile] = useState("");
18
- const [address, setAddress] = useState("");
19
- const [user, setUser] = useState(undefined);
20
- const cookies = new Cookies();
21
- const token = cookies.get("authToken");
22
- const userToken = ((_a = token === null || token === void 0 ? void 0 : token.data) === null || _a === void 0 ? void 0 : _a.token) || token;
23
- useEffect(() => {
24
- const fetchUserProfile = () => __awaiter(void 0, void 0, void 0, function* () {
25
- if (usermodalopen && userToken && !user) {
26
- try {
27
- const userProfile = yield getProfileApi(userToken, url);
28
- if (userProfile) {
29
- setUser(userProfile);
30
- setName(userProfile.name);
31
- setMobile(userProfile.mobile);
32
- setAddress(userProfile.address);
33
- }
34
- }
35
- catch (error) {
36
- console.error("Error fetching user profile:", error);
37
- }
38
- }
39
- });
40
- fetchUserProfile();
41
- }, [usermodalopen, userToken, user]);
42
- return (_jsx("div", { className: `fixed inset-0 flex items-center justify-center ${isDarkMode ? "bg-gray-800 bg-opacity-90" : "bg-gray-500 bg-opacity-75"}`, children: _jsxs("div", { className: `rounded-lg p-6 w-full max-w-md relative ${isDarkMode
43
- ? "border border-gray-300 bg-[#242424] text-white"
44
- : "bg-white text-black"}`, children: [_jsx("button", { onClick: closeusermodal, className: `absolute top-3 right-3 ${isDarkMode
45
- ? "text-gray-300 hover:text-gray-500"
46
- : "text-gray-400 hover:text-gray-600"} text-2xl`, children: "\u00D7" }), _jsx("h3", { className: "text-center text-xl font-bold mb-4", children: "Add User Details" }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Name" }), _jsx("input", { type: "text", placeholder: "Name", className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
47
- ? "bg-gray-800 border-gray-700 text-white "
48
- : "border-gray-300 "}` })] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Mobile" }), _jsx("input", { type: "tel", placeholder: "Mobile", className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
49
- ? "bg-gray-800 border-gray-700 text-white "
50
- : "border-gray-300 "}` })] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Address" }), _jsx("input", { type: "text", placeholder: "Address", className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
51
- ? "bg-gray-800 border-gray-700 text-white "
52
- : "border-gray-300 "}` })] }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { className: `px-4 py-2 rounded ${isDarkMode
53
- ? "bg-blue-500 hover:bg-blue-400 text-white"
54
- : "bg-blue-500 hover:bg-blue-400 text-white"}`, children: "Add Details" }) })] }) }));
55
- };
56
- export default AddMissingDetails;
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- interface AddUserDetailsProps {
3
- usermodalopen: boolean;
4
- closeusermodal: () => void;
5
- url: string;
6
- isDarkMode: boolean;
7
- }
8
- declare const AddUserDetails: React.FC<AddUserDetailsProps>;
9
- export default AddUserDetails;
@@ -1,21 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- const AddUserDetails = ({ usermodalopen, closeusermodal, url, isDarkMode, }) => {
4
- const [name, setName] = useState("");
5
- const [mobile, setMobile] = useState("");
6
- const [address, setAddress] = useState("");
7
- return (_jsx("div", { className: `fixed inset-0 flex items-center justify-center ${isDarkMode ? "bg-gray-800 bg-opacity-90" : "bg-gray-500 bg-opacity-75"}`, children: _jsxs("div", { className: `rounded-lg p-6 w-full max-w-md relative ${isDarkMode
8
- ? "border border-gray-300 bg-[#242424] text-white"
9
- : "bg-white text-black"}`, children: [_jsx("button", { onClick: closeusermodal, className: `absolute top-3 right-3 ${isDarkMode
10
- ? "text-gray-300 hover:text-gray-500"
11
- : "text-gray-400 hover:text-gray-600"} text-2xl`, children: "\u00D7" }), _jsx("h3", { className: "text-center text-xl font-bold mb-4", children: "Update User Details" }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Name" }), _jsx("input", { type: "text", placeholder: "Name", value: name, onChange: (e) => setName(e.target.value), className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
12
- ? "bg-gray-800 border-gray-700 text-white "
13
- : "border-gray-300 "}` })] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Mobile" }), _jsx("input", { type: "tel", placeholder: "Mobile", value: mobile, onChange: (e) => setMobile(e.target.value), className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
14
- ? "bg-gray-800 border-gray-700 text-white "
15
- : "border-gray-300 "}` })] }), _jsxs("div", { className: "mb-4", children: [_jsx("label", { className: `block text-sm font-medium mb-1 ${isDarkMode ? "text-gray-300" : "text-gray-700"}`, children: "Address" }), _jsx("input", { type: "text", placeholder: "Address", value: address, onChange: (e) => setAddress(e.target.value), className: `w-full p-2 border rounded focus:outline-none focus:ring ${isDarkMode
16
- ? "bg-gray-800 border-gray-700 text-white "
17
- : "border-gray-300 "}` })] }), _jsx("div", { className: "flex justify-end", children: _jsx("button", { className: `px-4 py-2 rounded ${isDarkMode
18
- ? "bg-blue-500 hover:bg-blue-400 text-white"
19
- : "bg-blue-500 hover:bg-blue-400 text-white"}`, children: "Update Details" }) })] }) }));
20
- };
21
- export default AddUserDetails;
package/src/App.tsx DELETED
@@ -1,21 +0,0 @@
1
- import React from "react";
2
- import { BrowserRouter, Routes, Route } from "react-router-dom";
3
- import Navbar from "./components/Navbar"; // Ensure correct path to your Navbar
4
- import Footer from "./components/footer/Footer"; // Ensure correct path to your Footer
5
-
6
- const App: React.FC = () => {
7
- return (
8
- <BrowserRouter>
9
- {/* <Navbar name="My Package" /> */}
10
- <Routes>
11
- {/* <Route path="/" element={<div>Home Page</div>} /> */}
12
- {/* <Route path="/navbar" element={<Navbar />} /> */}
13
- <Route path="/footer" element={<Footer />} />
14
- </Routes>
15
- </BrowserRouter>
16
- );
17
- };
18
-
19
- // Named exports for Navbar and Footer
20
- export { Navbar, Footer };
21
- export default App;
@@ -1,21 +0,0 @@
1
- import React from "react";
2
-
3
- interface NavbarProps {
4
- name: string;
5
- }
6
-
7
- const Navbar: React.FC<NavbarProps> = ({ name }) => {
8
- return (
9
- <div className="bg-gray-800 text-white p-4 text-center text-lg">
10
- {name}
11
- <button
12
- onClick={() => (window.location.href = "/footer")}
13
- className="ml-4 p-2 bg-blue-500 rounded"
14
- >
15
- Go to Footer
16
- </button>
17
- </div>
18
- );
19
- };
20
-
21
- export default Navbar;
@@ -1,7 +0,0 @@
1
- import React from "react";
2
-
3
- function Dashboard() {
4
- return <div>Dashboard</div>;
5
- }
6
-
7
- export default Dashboard;
@@ -1,25 +0,0 @@
1
- import React from "react";
2
- import { useRef } from "react";
3
- import JoditEditor from "jodit-react";
4
-
5
- interface EditorProps {
6
- content: string;
7
- setContent: (newContent: string) => void;
8
- config?: Record<string, any>;
9
- }
10
-
11
- const Editor: React.FC<EditorProps> = ({ content, setContent, config }) => {
12
- const editor = useRef(null);
13
-
14
- return (
15
- <JoditEditor
16
- ref={editor}
17
- value={content}
18
- config={config}
19
- onBlur={(newContent) => setContent(newContent)}
20
- onChange={() => {}}
21
- />
22
- );
23
- };
24
-
25
- export default Editor;