eleven-solutions-common-website-unique-web 21.0.56 → 22.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/App.d.ts +0 -3
- package/dist/App.js +0 -2
- package/dist/components/admin/Sidebar.d.ts +0 -1
- package/dist/components/admin/Sidebar.js +2 -2
- package/dist/components/admin/UserForm.js +6 -5
- package/dist/components/admin/Users.js +4 -3
- package/dist/components/footer/Footer.d.ts +3 -2
- package/dist/components/footer/Footer.js +2 -3
- package/dist/components/index.d.ts +3 -2
- package/dist/components/index.js +3 -2
- package/dist/components/login/GoogleButton.js +4 -1
- package/dist/components/login/Header.d.ts +3 -1
- package/dist/components/login/Header.js +135 -31
- package/dist/components/login/Login.d.ts +2 -1
- package/dist/components/login/Login.js +15 -65
- package/dist/components/login/Setcookie.d.ts +2 -0
- package/dist/components/login/Setcookie.js +7 -0
- package/dist/components/redux/slices/types/types.d.ts +3 -0
- package/dist/components/redux/slices/types/types.js +1 -0
- package/dist/components/redux/slices/userSlice.d.ts +20 -0
- package/dist/components/redux/slices/userSlice.js +90 -0
- package/dist/components/useraccount/UpdateUserDetails.d.ts +1 -0
- package/dist/components/useraccount/UpdateUserDetails.js +15 -22
- package/package.json +9 -4
- package/.github/workflows/main.yml +0 -22
- package/azure-pipelines.yml +0 -20
- package/dist/components/Navbar.d.ts +0 -6
- package/dist/components/Navbar.js +0 -5
- package/dist/components/login/View.d.ts +0 -2
- package/dist/components/login/View.js +0 -10
- package/dist/components/useraccount/AddMissingDetails.d.ts +0 -9
- package/dist/components/useraccount/AddMissingDetails.js +0 -56
- package/dist/components/useraccount/AddUserDetails.d.ts +0 -9
- package/dist/components/useraccount/AddUserDetails.js +0 -21
- package/src/App.tsx +0 -21
- package/src/components/Navbar.tsx +0 -21
- package/src/components/admin/Dashboard.tsx +0 -7
- package/src/components/admin/Editor.tsx +0 -25
- package/src/components/admin/Sidebar.tsx +0 -102
- package/src/components/admin/Taxionomies.tsx +0 -314
- package/src/components/admin/TaxonomyForm.tsx +0 -744
- package/src/components/admin/Template.tsx +0 -304
- package/src/components/admin/TemplateForm.tsx +0 -141
- package/src/components/admin/UserForm.tsx +0 -231
- package/src/components/admin/Users.tsx +0 -479
- package/src/components/api/api.ts +0 -59
- package/src/components/api/taxonomy.ts +0 -201
- package/src/components/api/template.ts +0 -114
- package/src/components/api/updateuser.ts +0 -53
- package/src/components/api/user.ts +0 -133
- package/src/components/footer/Footer.tsx +0 -128
- package/src/components/footer/Privacy.tsx +0 -82
- package/src/components/footer/Terms.tsx +0 -156
- package/src/components/index.ts +0 -19
- package/src/components/login/GoogleButton.tsx +0 -85
- package/src/components/login/Header.tsx +0 -340
- package/src/components/login/Login.tsx +0 -277
- package/src/components/useraccount/AddUserDetails.tsx +0 -136
- package/src/components/useraccount/UpdateUserDetails.tsx +0 -214
- package/src/index.ts +0 -1
- package/tsconfig.json +0 -15
@@ -1,201 +0,0 @@
|
|
1
|
-
import axios from "axios";
|
2
|
-
import Cookies from "universal-cookie";
|
3
|
-
const apiUrl = "http://localhost:5260";
|
4
|
-
const cookies = new Cookies();
|
5
|
-
|
6
|
-
export const addTaxonomyApi = async (
|
7
|
-
url: string,
|
8
|
-
type: string,
|
9
|
-
code: number,
|
10
|
-
value: string
|
11
|
-
) => {
|
12
|
-
const token = cookies.get("authToken");
|
13
|
-
|
14
|
-
try {
|
15
|
-
const response = await axios.post(
|
16
|
-
`${url}/taxonomy/add`,
|
17
|
-
{
|
18
|
-
Type: type,
|
19
|
-
Code: code,
|
20
|
-
Value: value,
|
21
|
-
},
|
22
|
-
{
|
23
|
-
headers: {
|
24
|
-
Authorization: `Bearer ${token}`,
|
25
|
-
},
|
26
|
-
}
|
27
|
-
);
|
28
|
-
return response;
|
29
|
-
} catch (error) {
|
30
|
-
console.error(error);
|
31
|
-
|
32
|
-
throw error;
|
33
|
-
}
|
34
|
-
};
|
35
|
-
|
36
|
-
export const fetchTaxonomiessApi = async (url: string) => {
|
37
|
-
const token = cookies.get("authToken");
|
38
|
-
|
39
|
-
try {
|
40
|
-
const response = await axios.get(`${url}/taxonomy/gettaxonomy`, {
|
41
|
-
headers: {
|
42
|
-
Authorization: `Bearer ${token}`,
|
43
|
-
},
|
44
|
-
});
|
45
|
-
return response.data;
|
46
|
-
} catch (error) {
|
47
|
-
console.error(error);
|
48
|
-
return false;
|
49
|
-
}
|
50
|
-
};
|
51
|
-
|
52
|
-
export const deleteTaxonomyApi = async (url: string, id: string) => {
|
53
|
-
const token = cookies.get("authToken");
|
54
|
-
|
55
|
-
try {
|
56
|
-
const response = await axios.request({
|
57
|
-
method: "DELETE",
|
58
|
-
url: `${url}/taxonomy/delete`,
|
59
|
-
headers: {
|
60
|
-
Authorization: `Bearer ${token}`,
|
61
|
-
"Content-Type": "application/json",
|
62
|
-
},
|
63
|
-
data: {
|
64
|
-
id,
|
65
|
-
},
|
66
|
-
});
|
67
|
-
return response.data;
|
68
|
-
} catch (error) {
|
69
|
-
console.error("Error deleting taxonomy:", error);
|
70
|
-
throw error;
|
71
|
-
}
|
72
|
-
};
|
73
|
-
|
74
|
-
export const fetchTaxonomyByIdApi = async (url: string, taxonomyId: string) => {
|
75
|
-
const cookies = new Cookies();
|
76
|
-
const token = cookies.get("authToken");
|
77
|
-
|
78
|
-
try {
|
79
|
-
const response = await axios.get(
|
80
|
-
`${url}/taxonomy/gettaxonomybyid/${taxonomyId}`,
|
81
|
-
{
|
82
|
-
headers: {
|
83
|
-
Authorization: `Bearer ${token}`,
|
84
|
-
},
|
85
|
-
}
|
86
|
-
);
|
87
|
-
|
88
|
-
return response.data;
|
89
|
-
} catch (error) {
|
90
|
-
console.error("Error fetching user by ID:", error);
|
91
|
-
return false;
|
92
|
-
}
|
93
|
-
};
|
94
|
-
|
95
|
-
export const updateTaxonomyApi = async (
|
96
|
-
url: string,
|
97
|
-
id: string,
|
98
|
-
type: string,
|
99
|
-
code: number,
|
100
|
-
value: string
|
101
|
-
) => {
|
102
|
-
const token = cookies.get("authToken");
|
103
|
-
|
104
|
-
try {
|
105
|
-
const response = await axios.post(
|
106
|
-
`${url}/taxonomy/updatetaxonomy`,
|
107
|
-
{
|
108
|
-
Id: id,
|
109
|
-
Type: type,
|
110
|
-
Code: code,
|
111
|
-
Value: value,
|
112
|
-
},
|
113
|
-
{
|
114
|
-
headers: {
|
115
|
-
Authorization: `Bearer ${token}`,
|
116
|
-
},
|
117
|
-
}
|
118
|
-
);
|
119
|
-
return response.data;
|
120
|
-
} catch (error) {
|
121
|
-
throw error;
|
122
|
-
}
|
123
|
-
};
|
124
|
-
|
125
|
-
export const addMultipleTaxonomiesApi = async (
|
126
|
-
url: string,
|
127
|
-
taxonomies: { type: string; code: number; value: string }[]
|
128
|
-
) => {
|
129
|
-
const token = cookies.get("authToken");
|
130
|
-
|
131
|
-
try {
|
132
|
-
const response = await axios.post(
|
133
|
-
`${url}/taxonomy/addmultipletaxonomies`,
|
134
|
-
taxonomies,
|
135
|
-
{
|
136
|
-
headers: {
|
137
|
-
Authorization: `Bearer ${token}`,
|
138
|
-
"Content-Type": "application/json",
|
139
|
-
},
|
140
|
-
}
|
141
|
-
);
|
142
|
-
return response;
|
143
|
-
} catch (error: any) {
|
144
|
-
console.error(
|
145
|
-
"Error adding multiple taxonomies:",
|
146
|
-
error.response?.data || error
|
147
|
-
);
|
148
|
-
throw error;
|
149
|
-
}
|
150
|
-
};
|
151
|
-
|
152
|
-
export const isMultipleApi = async (url: string, type: string) => {
|
153
|
-
const token = cookies.get("authToken");
|
154
|
-
|
155
|
-
try {
|
156
|
-
const response = await axios.get(
|
157
|
-
`${url}/taxonomy/IsTaxonomyMultipleByType/${type}`,
|
158
|
-
{
|
159
|
-
headers: {
|
160
|
-
Authorization: `Bearer ${token}`,
|
161
|
-
},
|
162
|
-
}
|
163
|
-
);
|
164
|
-
return response.data;
|
165
|
-
} catch (error) {
|
166
|
-
console.error("Error checking if taxonomy is multiple:", error);
|
167
|
-
throw error;
|
168
|
-
}
|
169
|
-
};
|
170
|
-
|
171
|
-
export const addSubTypeApi = async (
|
172
|
-
url: string,
|
173
|
-
parentid: string,
|
174
|
-
type: string,
|
175
|
-
code: number,
|
176
|
-
value: string
|
177
|
-
) => {
|
178
|
-
const token = cookies.get("authToken");
|
179
|
-
|
180
|
-
try {
|
181
|
-
const response = await axios.post(
|
182
|
-
`${url}/taxonomy/addsubtype`,
|
183
|
-
{
|
184
|
-
ParentId: parentid,
|
185
|
-
Type: type,
|
186
|
-
Code: code,
|
187
|
-
Value: value,
|
188
|
-
},
|
189
|
-
{
|
190
|
-
headers: {
|
191
|
-
Authorization: `Bearer ${token}`,
|
192
|
-
},
|
193
|
-
}
|
194
|
-
);
|
195
|
-
return response;
|
196
|
-
} catch (error) {
|
197
|
-
console.error(error);
|
198
|
-
|
199
|
-
throw error;
|
200
|
-
}
|
201
|
-
};
|
@@ -1,114 +0,0 @@
|
|
1
|
-
import axios from "axios";
|
2
|
-
import Cookies from "universal-cookie";
|
3
|
-
const apiUrl = "http://localhost:5260";
|
4
|
-
const cookies = new Cookies();
|
5
|
-
|
6
|
-
export const addTemplateApi = async (
|
7
|
-
url: string,
|
8
|
-
name: string,
|
9
|
-
content: string
|
10
|
-
) => {
|
11
|
-
const token = cookies.get("authToken");
|
12
|
-
|
13
|
-
try {
|
14
|
-
const response = await axios.post(
|
15
|
-
`${url}/template/add`,
|
16
|
-
{
|
17
|
-
Name: name,
|
18
|
-
Content: content,
|
19
|
-
},
|
20
|
-
{
|
21
|
-
headers: {
|
22
|
-
Authorization: `Bearer ${token}`,
|
23
|
-
},
|
24
|
-
}
|
25
|
-
);
|
26
|
-
return response;
|
27
|
-
} catch (error) {
|
28
|
-
console.error(error);
|
29
|
-
throw error;
|
30
|
-
}
|
31
|
-
};
|
32
|
-
|
33
|
-
export const fetchTemplatesApi = async (url: string) => {
|
34
|
-
const token = cookies.get("authToken");
|
35
|
-
|
36
|
-
try {
|
37
|
-
const response = await axios.get(`${url}/template/gettemplate`, {
|
38
|
-
headers: {
|
39
|
-
Authorization: `Bearer ${token}`,
|
40
|
-
},
|
41
|
-
});
|
42
|
-
return response.data;
|
43
|
-
} catch (error) {
|
44
|
-
console.error(error);
|
45
|
-
return false;
|
46
|
-
}
|
47
|
-
};
|
48
|
-
|
49
|
-
export const fetchTemplateByIdApi = async (url: string, id: string) => {
|
50
|
-
const cookies = new Cookies();
|
51
|
-
const token = cookies.get("authToken");
|
52
|
-
|
53
|
-
try {
|
54
|
-
const response = await axios.get(`${url}/template/gettemplatebyid/${id}`, {
|
55
|
-
headers: {
|
56
|
-
Authorization: `Bearer ${token}`,
|
57
|
-
},
|
58
|
-
});
|
59
|
-
|
60
|
-
return response.data;
|
61
|
-
} catch (error) {
|
62
|
-
console.error("Error fetching template by ID:", error);
|
63
|
-
return false;
|
64
|
-
}
|
65
|
-
};
|
66
|
-
|
67
|
-
export const updateTemplateApi = async (
|
68
|
-
url: string,
|
69
|
-
id: string,
|
70
|
-
name: string,
|
71
|
-
content: string
|
72
|
-
) => {
|
73
|
-
const token = cookies.get("authToken");
|
74
|
-
|
75
|
-
try {
|
76
|
-
const response = await axios.post(
|
77
|
-
`${url}/template/updatetemplate`,
|
78
|
-
{
|
79
|
-
id: id,
|
80
|
-
name: name,
|
81
|
-
content: content,
|
82
|
-
},
|
83
|
-
{
|
84
|
-
headers: {
|
85
|
-
Authorization: `Bearer ${token}`,
|
86
|
-
},
|
87
|
-
}
|
88
|
-
);
|
89
|
-
return response.data;
|
90
|
-
} catch (error) {
|
91
|
-
throw error;
|
92
|
-
}
|
93
|
-
};
|
94
|
-
|
95
|
-
export const deleteTemplateApi = async (url: string, id: string) => {
|
96
|
-
const token = cookies.get("authToken");
|
97
|
-
|
98
|
-
try {
|
99
|
-
const response = await axios.post(
|
100
|
-
`${url}/template/deletetemplate`,
|
101
|
-
{
|
102
|
-
id: id,
|
103
|
-
},
|
104
|
-
{
|
105
|
-
headers: {
|
106
|
-
Authorization: `Bearer ${token}`,
|
107
|
-
},
|
108
|
-
}
|
109
|
-
);
|
110
|
-
return response.data;
|
111
|
-
} catch (error) {
|
112
|
-
throw error;
|
113
|
-
}
|
114
|
-
};
|
@@ -1,53 +0,0 @@
|
|
1
|
-
import axios from "axios";
|
2
|
-
interface UserProfile {
|
3
|
-
name: string;
|
4
|
-
mobile: string;
|
5
|
-
address: string;
|
6
|
-
// add any other fields that `userProfile` is expected to have
|
7
|
-
}
|
8
|
-
|
9
|
-
export const getProfileApi = async (
|
10
|
-
token: string,
|
11
|
-
apiurl: string
|
12
|
-
): Promise<UserProfile | false> => {
|
13
|
-
try {
|
14
|
-
const response = await axios.get<UserProfile>(`${apiurl}/login/get`, {
|
15
|
-
headers: {
|
16
|
-
Authorization: `Bearer ${token}`,
|
17
|
-
},
|
18
|
-
});
|
19
|
-
return response.data;
|
20
|
-
} catch (error: any) {
|
21
|
-
console.error(error);
|
22
|
-
return false;
|
23
|
-
}
|
24
|
-
};
|
25
|
-
|
26
|
-
export const updateProfileApi = async (
|
27
|
-
url: string,
|
28
|
-
token: string,
|
29
|
-
name: string,
|
30
|
-
mobile: string,
|
31
|
-
address: string
|
32
|
-
) => {
|
33
|
-
try {
|
34
|
-
const response = await axios.post(
|
35
|
-
`${url}/login/update`,
|
36
|
-
{
|
37
|
-
url,
|
38
|
-
name,
|
39
|
-
mobile,
|
40
|
-
address,
|
41
|
-
},
|
42
|
-
{
|
43
|
-
headers: {
|
44
|
-
Authorization: `Bearer ${token}`,
|
45
|
-
},
|
46
|
-
}
|
47
|
-
);
|
48
|
-
return response;
|
49
|
-
} catch (error) {
|
50
|
-
console.error("Error during API call:", error);
|
51
|
-
throw error;
|
52
|
-
}
|
53
|
-
};
|
@@ -1,133 +0,0 @@
|
|
1
|
-
import axios from "axios";
|
2
|
-
import Cookies from "universal-cookie";
|
3
|
-
const apiUrl = "http://localhost:5260";
|
4
|
-
const cookies = new Cookies();
|
5
|
-
|
6
|
-
export const addUserApi = async (
|
7
|
-
url: string,
|
8
|
-
name: string,
|
9
|
-
email: string,
|
10
|
-
mobile: string,
|
11
|
-
address: string,
|
12
|
-
roleType: string,
|
13
|
-
gender: string
|
14
|
-
) => {
|
15
|
-
const token = cookies.get("authToken");
|
16
|
-
|
17
|
-
try {
|
18
|
-
const response = await axios.post(
|
19
|
-
`${url}/login/adduser`,
|
20
|
-
{
|
21
|
-
Name: name,
|
22
|
-
Email: email,
|
23
|
-
Mobile: mobile,
|
24
|
-
Address: address,
|
25
|
-
RoleType: Number(roleType),
|
26
|
-
Gender: Number(gender),
|
27
|
-
},
|
28
|
-
{
|
29
|
-
headers: {
|
30
|
-
Authorization: `Bearer ${token}`,
|
31
|
-
},
|
32
|
-
}
|
33
|
-
);
|
34
|
-
return response;
|
35
|
-
} catch (error) {
|
36
|
-
console.error(error);
|
37
|
-
|
38
|
-
throw error;
|
39
|
-
}
|
40
|
-
};
|
41
|
-
|
42
|
-
export const fetchUsersApi = async (url: string) => {
|
43
|
-
const token = cookies.get("authToken");
|
44
|
-
|
45
|
-
try {
|
46
|
-
const response = await axios.get(`${url}/login/getuser`, {
|
47
|
-
headers: {
|
48
|
-
Authorization: `Bearer ${token}`,
|
49
|
-
},
|
50
|
-
});
|
51
|
-
return response.data;
|
52
|
-
} catch (error) {
|
53
|
-
console.error(error);
|
54
|
-
return false;
|
55
|
-
}
|
56
|
-
};
|
57
|
-
|
58
|
-
export const fetchUserByIdApi = async (url: string, userId: string) => {
|
59
|
-
const cookies = new Cookies();
|
60
|
-
const token = cookies.get("authToken");
|
61
|
-
|
62
|
-
try {
|
63
|
-
const response = await axios.get(`${url}/login/getuserbyid/${userId}`, {
|
64
|
-
headers: {
|
65
|
-
Authorization: `Bearer ${token}`,
|
66
|
-
},
|
67
|
-
});
|
68
|
-
|
69
|
-
return response.data;
|
70
|
-
} catch (error) {
|
71
|
-
console.error("Error fetching user by ID:", error);
|
72
|
-
return false;
|
73
|
-
}
|
74
|
-
};
|
75
|
-
|
76
|
-
export const deleteUserApi = async (url: string, id: string) => {
|
77
|
-
const token = cookies.get("authToken");
|
78
|
-
|
79
|
-
try {
|
80
|
-
const response = await axios.request({
|
81
|
-
method: "DELETE",
|
82
|
-
url: `${url}/login/delete`,
|
83
|
-
headers: {
|
84
|
-
Authorization: `Bearer ${token}`,
|
85
|
-
"Content-Type": "application/json",
|
86
|
-
},
|
87
|
-
data: {
|
88
|
-
id,
|
89
|
-
},
|
90
|
-
});
|
91
|
-
return response.data;
|
92
|
-
} catch (error) {
|
93
|
-
console.error("Error deleting user:", error);
|
94
|
-
throw error;
|
95
|
-
}
|
96
|
-
};
|
97
|
-
|
98
|
-
export const updateUserApi = async (
|
99
|
-
url: string,
|
100
|
-
|
101
|
-
id: string,
|
102
|
-
name: string,
|
103
|
-
email: string,
|
104
|
-
mobile: string,
|
105
|
-
address: string,
|
106
|
-
roleType: string,
|
107
|
-
gender: string
|
108
|
-
) => {
|
109
|
-
const token = cookies.get("authToken");
|
110
|
-
|
111
|
-
try {
|
112
|
-
const response = await axios.post(
|
113
|
-
`${url}/login/updateuser`,
|
114
|
-
{
|
115
|
-
Id: id,
|
116
|
-
Name: name,
|
117
|
-
Email: email,
|
118
|
-
Mobile: mobile,
|
119
|
-
Address: address,
|
120
|
-
RoleType: Number(roleType),
|
121
|
-
Gender: Number(gender),
|
122
|
-
},
|
123
|
-
{
|
124
|
-
headers: {
|
125
|
-
Authorization: `Bearer ${token}`,
|
126
|
-
},
|
127
|
-
}
|
128
|
-
);
|
129
|
-
return response.data;
|
130
|
-
} catch (error) {
|
131
|
-
throw error;
|
132
|
-
}
|
133
|
-
};
|
@@ -1,128 +0,0 @@
|
|
1
|
-
import React from "react";
|
2
|
-
|
3
|
-
const data = [
|
4
|
-
{
|
5
|
-
title: "About",
|
6
|
-
links: [
|
7
|
-
{ label: "About Us", link: "/about" },
|
8
|
-
{ label: "Terms and Conditions", link: "/termsandconditions" },
|
9
|
-
{ label: "Privacy and Policy", link: "/privacyandpolicy" },
|
10
|
-
{ label: "Refund Policy", link: "/refundpolicy" },
|
11
|
-
],
|
12
|
-
},
|
13
|
-
{
|
14
|
-
title: "Services",
|
15
|
-
links: [
|
16
|
-
{ label: "Coming Soon", link: "#" },
|
17
|
-
{ label: "Coming Soon", link: "#" },
|
18
|
-
{ label: "Coming Soon", link: "#" },
|
19
|
-
{ label: "Coming Soon", link: "#" },
|
20
|
-
],
|
21
|
-
},
|
22
|
-
{
|
23
|
-
title: "Departments",
|
24
|
-
links: [
|
25
|
-
{ label: "Coming Soon", link: "#" },
|
26
|
-
{ label: "Coming Soon", link: "#" },
|
27
|
-
{ label: "Coming Soon", link: "#" },
|
28
|
-
{ label: "Coming Soon", link: "#" },
|
29
|
-
],
|
30
|
-
},
|
31
|
-
];
|
32
|
-
|
33
|
-
interface FooterProps {
|
34
|
-
companyName?: string;
|
35
|
-
isDarkMode?: boolean;
|
36
|
-
}
|
37
|
-
|
38
|
-
const Footer: React.FC<FooterProps> = ({
|
39
|
-
companyName = "Eleven Software Solutions Pvt. Ltd.",
|
40
|
-
isDarkMode = false,
|
41
|
-
}) => {
|
42
|
-
const handleNavigation = (event: React.MouseEvent, path: string) => {
|
43
|
-
event.preventDefault();
|
44
|
-
window.history.pushState({}, "", path);
|
45
|
-
window.dispatchEvent(new PopStateEvent("popstate"));
|
46
|
-
};
|
47
|
-
|
48
|
-
const groups = data.map((group) => (
|
49
|
-
<div key={group.title}>
|
50
|
-
<h3
|
51
|
-
className={`${
|
52
|
-
isDarkMode ? " text-[#ffff]" : " text-[#000000]"
|
53
|
-
} text-lg font-bold mb-3`}
|
54
|
-
>
|
55
|
-
{group.title}
|
56
|
-
</h3>
|
57
|
-
<ul>
|
58
|
-
{group.links.map((link, index) => (
|
59
|
-
<li key={index} className="mb-2">
|
60
|
-
<a
|
61
|
-
href={link.link}
|
62
|
-
onClick={(event) => handleNavigation(event, link.link)}
|
63
|
-
className={`${
|
64
|
-
isDarkMode ? "text-[#B8B8B8]" : "bg-[#f8f9fa] text-[#b69B96]"
|
65
|
-
} cursor-pointer hover:text-blue-200 hover:underline`}
|
66
|
-
>
|
67
|
-
{link.label}
|
68
|
-
</a>
|
69
|
-
</li>
|
70
|
-
))}
|
71
|
-
</ul>
|
72
|
-
</div>
|
73
|
-
));
|
74
|
-
|
75
|
-
const thisName = "Barelvi";
|
76
|
-
|
77
|
-
return (
|
78
|
-
<footer
|
79
|
-
className={`${
|
80
|
-
isDarkMode
|
81
|
-
? "bg-[#2e2e2e] lg:border-t lg:border-[#3b3b3b] md:border-t md:border-[#3b3b3b]"
|
82
|
-
: "bg-[#f8f9fa] border-t border-[#E9ECEF]"
|
83
|
-
} py-8`}
|
84
|
-
>
|
85
|
-
<div className="container mx-auto px-6 flex flex-col lg:flex-row lg:justify-between items-center">
|
86
|
-
<div className="flex flex-col items-center lg:items-start lg:mb-0 ">
|
87
|
-
<img
|
88
|
-
src="images/BarelviLogo.png"
|
89
|
-
alt="Logo"
|
90
|
-
className="w-16 h-16 mb-0"
|
91
|
-
/>
|
92
|
-
<h2 className="text-2xl font-semibold bg-gradient-to-r from-red-500 to-yellow-400 bg-clip-text text-transparent">
|
93
|
-
{thisName}
|
94
|
-
</h2>
|
95
|
-
<p className="text-sm text-[#6c8282]">
|
96
|
-
A step towards digitalization for Islamic Learning
|
97
|
-
</p>
|
98
|
-
</div>
|
99
|
-
<div className="hidden md:flex md:flex:row md:mt-4 lg:flex lg:flex-row justify-between w-full lg:w-1/2 ">
|
100
|
-
{groups}
|
101
|
-
</div>
|
102
|
-
</div>
|
103
|
-
|
104
|
-
<div
|
105
|
-
className={`${
|
106
|
-
isDarkMode ? "border-t border-[#424242]" : "border-t border-[#e9efec]"
|
107
|
-
} py-4 mt-4 justify-between`}
|
108
|
-
>
|
109
|
-
<div className="container mx-auto text-[#828282] text-sm px-6 text-center lg:flex lg:justify-between md:flex md:justify-between">
|
110
|
-
<p>© 2024 {thisName}. All rights reserved.</p>
|
111
|
-
<p>
|
112
|
-
Developed By:{" "}
|
113
|
-
<a
|
114
|
-
href="http://www.11.Solutions"
|
115
|
-
target="_blank"
|
116
|
-
rel="noreferrer"
|
117
|
-
className="text-blue-300 hover:underline"
|
118
|
-
>
|
119
|
-
{companyName}
|
120
|
-
</a>
|
121
|
-
</p>
|
122
|
-
</div>
|
123
|
-
</div>
|
124
|
-
</footer>
|
125
|
-
);
|
126
|
-
};
|
127
|
-
|
128
|
-
export default Footer;
|
@@ -1,82 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
|
3
|
-
function Privacy({isDarkMode}) {
|
4
|
-
|
5
|
-
|
6
|
-
return (
|
7
|
-
<div className={`min-h-[70vh] p-4 text-justify lg:px-72 lg:text-justify ${isDarkMode ? "bg-globalBg text-[#ffff]" : "bg-white text-black"}`}>
|
8
|
-
<h2 className="text-xl font-extrabold mt-4 text-blue-400 text-center">PRIVACY AND POLICY</h2>
|
9
|
-
<p className="text-sm text-gray-500 mt-3">
|
10
|
-
Welcome to TajushShariah Foundation - Islamic Trust For Donation. This Privacy Policy is
|
11
|
-
designed to help you understand how we collect, use, disclose, and safeguard your personal
|
12
|
-
information when you use our website, services, or interact with us.
|
13
|
-
</p>
|
14
|
-
|
15
|
-
<h5 className="text-lg font-medium mt-4">1. Information We Collect</h5>
|
16
|
-
<p className="text-sm text-gray-500 mt-2">
|
17
|
-
<strong>Personal Information: </strong>We may collect personal information that you
|
18
|
-
provide to us voluntarily, such as your name, contact information, and donation details when
|
19
|
-
you use our website or engage with our services.
|
20
|
-
</p>
|
21
|
-
<p className="text-sm text-gray-500 mt-2">
|
22
|
-
<strong>Non-Personal Information: </strong>We may also collect non-personal information,
|
23
|
-
such as aggregated data, browser type, and IP address, for analytical and statistical
|
24
|
-
purposes.
|
25
|
-
</p>
|
26
|
-
|
27
|
-
<h5 className="text-lg font-medium mt-4">2. How We Use Your Information</h5>
|
28
|
-
<p className="text-sm text-gray-500 mt-2">
|
29
|
-
<strong>Donation Processing: </strong>We use your personal information to process and
|
30
|
-
manage your donations, provide receipts, and communicate with you regarding your
|
31
|
-
contributions.
|
32
|
-
</p>
|
33
|
-
<p className="text-sm text-gray-500 mt-2">
|
34
|
-
<strong>Communication: </strong>We may use your contact information to send you updates,
|
35
|
-
newsletters, or information about our initiatives, events, and fundraising activities.
|
36
|
-
</p>
|
37
|
-
<p className="text-sm text-gray-500 mt-2">
|
38
|
-
<strong>Analytics: </strong>Non-personal information may be used for analytics and to
|
39
|
-
improve our website functionality, content, and user experience.
|
40
|
-
</p>
|
41
|
-
|
42
|
-
<h5 className="text-lg font-medium mt-4">3. Information Sharing</h5>
|
43
|
-
<p className="text-sm text-gray-500 mt-2">
|
44
|
-
We do not sell, trade, or rent your personal information to third parties. Your information
|
45
|
-
may be shared with trusted third parties, such as payment processors, solely for the purpose
|
46
|
-
of processing your donations.
|
47
|
-
</p>
|
48
|
-
|
49
|
-
<h5 className="text-lg font-medium mt-4">4. Security</h5>
|
50
|
-
<p className="text-sm text-gray-500 mt-2">
|
51
|
-
We are committed to protecting the security of your personal information. We implement
|
52
|
-
appropriate technical and organizational measures to safeguard against unauthorized access,
|
53
|
-
disclosure, alteration, and destruction of data.
|
54
|
-
</p>
|
55
|
-
|
56
|
-
<h5 className="text-lg font-medium mt-4">5. Cookies</h5>
|
57
|
-
<p className="text-sm text-gray-500 mt-2">
|
58
|
-
Our website may use cookies to enhance your browsing experience. You can manage cookie
|
59
|
-
preferences through your browser settings.
|
60
|
-
</p>
|
61
|
-
|
62
|
-
<h5 className="text-lg font-medium mt-4">6. Your Choices</h5>
|
63
|
-
<p className="text-sm text-gray-500 mt-2">
|
64
|
-
You have the right to update, correct, or delete your personal information. You can also
|
65
|
-
opt-out of receiving communications from us.
|
66
|
-
</p>
|
67
|
-
|
68
|
-
<h5 className="text-lg font-medium mt-4">7. Changes to this Privacy Policy</h5>
|
69
|
-
<p className="text-sm text-gray-500 mt-2">
|
70
|
-
We reserve the right to update this Privacy Policy. Any changes will be effective upon
|
71
|
-
posting the revised policy on our website.
|
72
|
-
</p>
|
73
|
-
|
74
|
-
<h5 className="text-lg font-medium mt-4">8. Contact Us</h5>
|
75
|
-
<p className="text-sm text-gray-500 mb-4">
|
76
|
-
If you have any questions or concerns about this Privacy Policy, please contact us.
|
77
|
-
</p>
|
78
|
-
</div>
|
79
|
-
);
|
80
|
-
}
|
81
|
-
|
82
|
-
export default Privacy;
|