afront 1.0.22 → 1.0.25

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 (47) hide show
  1. package/.babelrc +13 -13
  2. package/.env +1 -1
  3. package/LICENSE +21 -21
  4. package/README.md +94 -94
  5. package/build-prod/index.html +1 -1
  6. package/build-prod/manifest.json +25 -25
  7. package/build-prod/offline.html +1023 -1023
  8. package/build-prod/robots.txt +3 -3
  9. package/build-prod-static/index.html +1 -1
  10. package/build-prod-static/manifest.json +25 -25
  11. package/build-prod-static/offline.html +1023 -1023
  12. package/build-prod-static/robots.txt +3 -3
  13. package/install.js +415 -415
  14. package/package.json +102 -95
  15. package/server.js +40 -40
  16. package/src/ARoutes/AFRoutes.js +28 -28
  17. package/src/Api/api.config.js +266 -266
  18. package/src/Api/login.service.js +44 -44
  19. package/src/App.js +28 -28
  20. package/src/Components/Background/MeshGradient.js +18 -18
  21. package/src/Components/Footer/Footer.js +108 -108
  22. package/src/Components/Header/Header.js +149 -149
  23. package/src/Components/Loading/LoadingIndicator.js +12 -12
  24. package/src/Components/Loading/LoadingIndicator.module.css +34 -34
  25. package/src/Components/Loading/LoadingSpinner.js +27 -27
  26. package/src/Components/Loading/LoadingSpinner.module.css +100 -100
  27. package/src/Components/RequireAuth.js +29 -29
  28. package/src/LoadingFallback.js +13 -13
  29. package/src/PageNotFound.js +19 -19
  30. package/src/Pages/Home.js +50 -50
  31. package/src/Pages/Signup.js +230 -230
  32. package/src/Pages/Support.js +68 -68
  33. package/src/Routes/ARoutes.js +66 -66
  34. package/src/Routes/ARoutesStatic.js +83 -83
  35. package/src/Static/appStatic.js +16 -16
  36. package/src/Static/indexStatic.js +13 -13
  37. package/src/Style/App.module.css +11 -11
  38. package/src/Style/MeshGradient.module.css +130 -130
  39. package/src/Style/PageNotFound.module.css +37 -37
  40. package/src/Style/Style.module.css +686 -686
  41. package/src/Style/Support.module.css +185 -185
  42. package/src/Utils/LoadingContext.js +5 -5
  43. package/src/index.js +25 -25
  44. package/webpack.build-prod.js +141 -140
  45. package/webpack.dev.js +127 -127
  46. package/webpack.prod.js +148 -147
  47. package/webpack.ssr.prod.js +97 -97
@@ -1,18 +1,18 @@
1
- import React from "react";
2
- import * as styles from "../../Style/MeshGradient.module.css";
3
-
4
- const MeshGradient = ({ children }) => {
5
- return (
6
- <div className={styles.gradientWrap}>
7
- <div className={styles.meshgradient}>
8
- <div className={`${styles.color} ${styles.c1}`}></div>
9
- <div className={`${styles.color} ${styles.c2}`}></div>
10
- <div className={`${styles.color} ${styles.c3}`}></div>
11
- <div className={`${styles.color} ${styles.c4}`}></div>
12
- </div>
13
- {children}
14
- </div>
15
- );
16
- };
17
-
18
- export default MeshGradient;
1
+ import React from "react";
2
+ import * as styles from "../../Style/MeshGradient.module.css";
3
+
4
+ const MeshGradient = ({ children }) => {
5
+ return (
6
+ <div className={styles.gradientWrap}>
7
+ <div className={styles.meshgradient}>
8
+ <div className={`${styles.color} ${styles.c1}`}></div>
9
+ <div className={`${styles.color} ${styles.c2}`}></div>
10
+ <div className={`${styles.color} ${styles.c3}`}></div>
11
+ <div className={`${styles.color} ${styles.c4}`}></div>
12
+ </div>
13
+ {children}
14
+ </div>
15
+ );
16
+ };
17
+
18
+ export default MeshGradient;
@@ -1,108 +1,108 @@
1
- import React from "react";
2
- import * as styles from "../../Style/Style.module.css";
3
-
4
- const Footer = () => {
5
- return (
6
- <footer className={styles.footer}>
7
- <div className={styles.footerContainer}>
8
- <div className={styles.footerBrand}>
9
- <a href="/" className={styles.footerLogo}>
10
- AFront
11
- </a>
12
- <p className={styles.footerDescription}>
13
- Empowering front-end development with cutting-edge tools and
14
- services.
15
- </p>
16
- </div>
17
-
18
- <div className={styles.footerLinks}>
19
- <div className={styles.linkColumn}>
20
- <h4 className={styles.footerTitle}>Company</h4>
21
- <ul className={styles.linkList}>
22
- <li>
23
- <a href="/about" className={styles.link}>
24
- About Us
25
- </a>
26
- </li>
27
- <li>
28
- <a href="/careers" className={styles.link}>
29
- Careers
30
- </a>
31
- </li>
32
- <li>
33
- <a href="/contact" className={styles.link}>
34
- Contact Us
35
- </a>
36
- </li>
37
- </ul>
38
- </div>
39
-
40
- <div className={styles.linkColumn}>
41
- <h4 className={styles.footerTitle}>Resources</h4>
42
- <ul className={styles.linkList}>
43
- <li>
44
- <a href="/blog" className={styles.link}>
45
- Blog
46
- </a>
47
- </li>
48
- <li>
49
- <a href="/docs" className={styles.link}>
50
- Documentation
51
- </a>
52
- </li>
53
- <li>
54
- <a href="/community" className={styles.link}>
55
- Community
56
- </a>
57
- </li>
58
- </ul>
59
- </div>
60
-
61
- <div className={styles.linkColumn}>
62
- <h4 className={styles.footerTitle}>Products</h4>
63
- <ul className={styles.linkList}>
64
- <li>
65
- <a href="/features" className={styles.link}>
66
- Features
67
- </a>
68
- </li>
69
- <li>
70
- <a href="/pricing" className={styles.link}>
71
- Pricing
72
- </a>
73
- </li>
74
- <li>
75
- <a href="/support" className={styles.link}>
76
- Support
77
- </a>
78
- </li>
79
- </ul>
80
- </div>
81
- </div>
82
- </div>
83
-
84
- <div className={styles.footerBottom}>
85
- <p className={styles.footerCopy}>
86
- © {new Date().getFullYear()} AFront by Asggen Inc. All rights
87
- reserved.
88
- </p>
89
- <div className={styles.socialLinks}>
90
- <a href="https://twitter.com" className={styles.socialLink}>
91
- Twitter
92
- </a>
93
- <a href="https://facebook.com" className={styles.socialLink}>
94
- Facebook
95
- </a>
96
- <a
97
- href="https://www.linkedin.com/showcase/asggenchat/"
98
- className={styles.socialLink}
99
- >
100
- LinkedIn
101
- </a>
102
- </div>
103
- </div>
104
- </footer>
105
- );
106
- };
107
-
108
- export default Footer;
1
+ import React from "react";
2
+ import * as styles from "../../Style/Style.module.css";
3
+
4
+ const Footer = () => {
5
+ return (
6
+ <footer className={styles.footer}>
7
+ <div className={styles.footerContainer}>
8
+ <div className={styles.footerBrand}>
9
+ <a href="/" className={styles.footerLogo}>
10
+ AFront
11
+ </a>
12
+ <p className={styles.footerDescription}>
13
+ Empowering front-end development with cutting-edge tools and
14
+ services.
15
+ </p>
16
+ </div>
17
+
18
+ <div className={styles.footerLinks}>
19
+ <div className={styles.linkColumn}>
20
+ <h4 className={styles.footerTitle}>Company</h4>
21
+ <ul className={styles.linkList}>
22
+ <li>
23
+ <a href="/about" className={styles.link}>
24
+ About Us
25
+ </a>
26
+ </li>
27
+ <li>
28
+ <a href="/careers" className={styles.link}>
29
+ Careers
30
+ </a>
31
+ </li>
32
+ <li>
33
+ <a href="/contact" className={styles.link}>
34
+ Contact Us
35
+ </a>
36
+ </li>
37
+ </ul>
38
+ </div>
39
+
40
+ <div className={styles.linkColumn}>
41
+ <h4 className={styles.footerTitle}>Resources</h4>
42
+ <ul className={styles.linkList}>
43
+ <li>
44
+ <a href="/blog" className={styles.link}>
45
+ Blog
46
+ </a>
47
+ </li>
48
+ <li>
49
+ <a href="/docs" className={styles.link}>
50
+ Documentation
51
+ </a>
52
+ </li>
53
+ <li>
54
+ <a href="/community" className={styles.link}>
55
+ Community
56
+ </a>
57
+ </li>
58
+ </ul>
59
+ </div>
60
+
61
+ <div className={styles.linkColumn}>
62
+ <h4 className={styles.footerTitle}>Products</h4>
63
+ <ul className={styles.linkList}>
64
+ <li>
65
+ <a href="/features" className={styles.link}>
66
+ Features
67
+ </a>
68
+ </li>
69
+ <li>
70
+ <a href="/pricing" className={styles.link}>
71
+ Pricing
72
+ </a>
73
+ </li>
74
+ <li>
75
+ <a href="/support" className={styles.link}>
76
+ Support
77
+ </a>
78
+ </li>
79
+ </ul>
80
+ </div>
81
+ </div>
82
+ </div>
83
+
84
+ <div className={styles.footerBottom}>
85
+ <p className={styles.footerCopy}>
86
+ © {new Date().getFullYear()} AFront by Asggen Inc. All rights
87
+ reserved.
88
+ </p>
89
+ <div className={styles.socialLinks}>
90
+ <a href="https://twitter.com" className={styles.socialLink}>
91
+ Twitter
92
+ </a>
93
+ <a href="https://facebook.com" className={styles.socialLink}>
94
+ Facebook
95
+ </a>
96
+ <a
97
+ href="https://www.linkedin.com/showcase/asggenchat/"
98
+ className={styles.socialLink}
99
+ >
100
+ LinkedIn
101
+ </a>
102
+ </div>
103
+ </div>
104
+ </footer>
105
+ );
106
+ };
107
+
108
+ export default Footer;
@@ -1,149 +1,149 @@
1
- import React, { useState, useEffect } from "react";
2
- import * as styles from "../../Style/Style.module.css";
3
-
4
- const Header = () => {
5
- const [isBurgerActive, setBurgerActive] = useState(false);
6
- const [isScrolled, setScrolled] = useState(false);
7
-
8
- // Toggle burger and menu
9
- const toggleMenu = () => {
10
- setBurgerActive(!isBurgerActive);
11
- };
12
-
13
- // Handle click on menu links
14
- const closeMenu = () => {
15
- setBurgerActive(false);
16
- };
17
-
18
- // Change header background on scrolling
19
- useEffect(() => {
20
- const handleScroll = () => {
21
- setScrolled(window.scrollY >= 5);
22
- };
23
-
24
- window.addEventListener("scroll", handleScroll);
25
-
26
- return () => {
27
- window.removeEventListener("scroll", handleScroll);
28
- };
29
- }, []);
30
-
31
- // Fixed Navbar Menu on Window Resize
32
- useEffect(() => {
33
- const handleResize = () => {
34
- if (window.innerWidth > 768 && isBurgerActive) {
35
- setBurgerActive(false);
36
- }
37
- };
38
-
39
- window.addEventListener("resize", handleResize);
40
-
41
- return () => {
42
- window.removeEventListener("resize", handleResize);
43
- };
44
- }, [isBurgerActive]);
45
-
46
- useEffect(() => {
47
- if (isBurgerActive) {
48
- document.body.style.overflow = "hidden";
49
- } else {
50
- document.body.style.overflow = "auto";
51
- }
52
-
53
- return () => {
54
- document.body.style.overflow = "auto"; // Reset to default on unmount
55
- };
56
- }, [isBurgerActive]);
57
- return (
58
- <header
59
- className={`${styles.header} ${
60
- isBurgerActive
61
- ? styles.offScroll
62
- : `${isScrolled ? styles.onScroll : ""}`
63
- } `}
64
- id="header"
65
- >
66
- <nav className={`${styles.navbar} ${styles.container}`}>
67
- <a href="/" className={`${styles.brand}`}>
68
- AFront
69
- </a>
70
- <div
71
- className={`${styles.burger} ${
72
- isBurgerActive ? styles.isActive : ""
73
- }`}
74
- id="burger"
75
- onClick={toggleMenu}
76
- >
77
- <span className={styles.burgerLine}></span>
78
- <span className={styles.burgerLine}></span>
79
- <span className={styles.burgerLine}></span>
80
- </div>
81
- <div
82
- className={`${styles.menu} ${
83
- isBurgerActive ? styles.isActive : styles.isInActive
84
- }`}
85
- id="menu"
86
- >
87
- <ul className={styles.menuInner}>
88
- <li className={styles.menuItem}>
89
- <a
90
- href="#"
91
- className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
92
- onClick={closeMenu}
93
- >
94
- Learn
95
- </a>
96
- </li>
97
- <li className={styles.menuItem}>
98
- <a
99
- href="#"
100
- className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
101
- onClick={closeMenu}
102
- >
103
- Feature
104
- </a>
105
- </li>
106
- <li className={styles.menuItem}>
107
- <a
108
- href="#"
109
- className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
110
- onClick={closeMenu}
111
- >
112
- Blog
113
- </a>
114
- </li>
115
- <li className={styles.menuItem}>
116
- <a
117
- href="/support"
118
- className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
119
- onClick={closeMenu}
120
- >
121
- Support
122
- </a>
123
- </li>
124
- {isBurgerActive && (
125
- <>
126
- <li className={styles.menuItem}>
127
- <a
128
- href="#"
129
- className={`${styles.menuLink} ${
130
- isBurgerActive ? styles.menuLinkMobile : ""
131
- }`}
132
- onClick={closeMenu}
133
- >
134
- demo
135
- </a>
136
- </li>
137
- </>
138
- )}
139
- </ul>
140
- </div>
141
- <a href="/" className={styles.menuBlock}>
142
- Get Started
143
- </a>
144
- </nav>
145
- </header>
146
- );
147
- };
148
-
149
- export default Header;
1
+ import React, { useState, useEffect } from "react";
2
+ import * as styles from "../../Style/Style.module.css";
3
+
4
+ const Header = () => {
5
+ const [isBurgerActive, setBurgerActive] = useState(false);
6
+ const [isScrolled, setScrolled] = useState(false);
7
+
8
+ // Toggle burger and menu
9
+ const toggleMenu = () => {
10
+ setBurgerActive(!isBurgerActive);
11
+ };
12
+
13
+ // Handle click on menu links
14
+ const closeMenu = () => {
15
+ setBurgerActive(false);
16
+ };
17
+
18
+ // Change header background on scrolling
19
+ useEffect(() => {
20
+ const handleScroll = () => {
21
+ setScrolled(window.scrollY >= 5);
22
+ };
23
+
24
+ window.addEventListener("scroll", handleScroll);
25
+
26
+ return () => {
27
+ window.removeEventListener("scroll", handleScroll);
28
+ };
29
+ }, []);
30
+
31
+ // Fixed Navbar Menu on Window Resize
32
+ useEffect(() => {
33
+ const handleResize = () => {
34
+ if (window.innerWidth > 768 && isBurgerActive) {
35
+ setBurgerActive(false);
36
+ }
37
+ };
38
+
39
+ window.addEventListener("resize", handleResize);
40
+
41
+ return () => {
42
+ window.removeEventListener("resize", handleResize);
43
+ };
44
+ }, [isBurgerActive]);
45
+
46
+ useEffect(() => {
47
+ if (isBurgerActive) {
48
+ document.body.style.overflow = "hidden";
49
+ } else {
50
+ document.body.style.overflow = "auto";
51
+ }
52
+
53
+ return () => {
54
+ document.body.style.overflow = "auto"; // Reset to default on unmount
55
+ };
56
+ }, [isBurgerActive]);
57
+ return (
58
+ <header
59
+ className={`${styles.header} ${
60
+ isBurgerActive
61
+ ? styles.offScroll
62
+ : `${isScrolled ? styles.onScroll : ""}`
63
+ } `}
64
+ id="header"
65
+ >
66
+ <nav className={`${styles.navbar} ${styles.container}`}>
67
+ <a href="/" className={`${styles.brand}`}>
68
+ AFront
69
+ </a>
70
+ <div
71
+ className={`${styles.burger} ${
72
+ isBurgerActive ? styles.isActive : ""
73
+ }`}
74
+ id="burger"
75
+ onClick={toggleMenu}
76
+ >
77
+ <span className={styles.burgerLine}></span>
78
+ <span className={styles.burgerLine}></span>
79
+ <span className={styles.burgerLine}></span>
80
+ </div>
81
+ <div
82
+ className={`${styles.menu} ${
83
+ isBurgerActive ? styles.isActive : styles.isInActive
84
+ }`}
85
+ id="menu"
86
+ >
87
+ <ul className={styles.menuInner}>
88
+ <li className={styles.menuItem}>
89
+ <a
90
+ href="#"
91
+ className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
92
+ onClick={closeMenu}
93
+ >
94
+ Learn
95
+ </a>
96
+ </li>
97
+ <li className={styles.menuItem}>
98
+ <a
99
+ href="#"
100
+ className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
101
+ onClick={closeMenu}
102
+ >
103
+ Feature
104
+ </a>
105
+ </li>
106
+ <li className={styles.menuItem}>
107
+ <a
108
+ href="#"
109
+ className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
110
+ onClick={closeMenu}
111
+ >
112
+ Blog
113
+ </a>
114
+ </li>
115
+ <li className={styles.menuItem}>
116
+ <a
117
+ href="/support"
118
+ className={`${styles.menuLink} ${isBurgerActive ? styles.menuLinkMobile : ""}`}
119
+ onClick={closeMenu}
120
+ >
121
+ Support
122
+ </a>
123
+ </li>
124
+ {isBurgerActive && (
125
+ <>
126
+ <li className={styles.menuItem}>
127
+ <a
128
+ href="#"
129
+ className={`${styles.menuLink} ${
130
+ isBurgerActive ? styles.menuLinkMobile : ""
131
+ }`}
132
+ onClick={closeMenu}
133
+ >
134
+ demo
135
+ </a>
136
+ </li>
137
+ </>
138
+ )}
139
+ </ul>
140
+ </div>
141
+ <a href="/" className={styles.menuBlock}>
142
+ Get Started
143
+ </a>
144
+ </nav>
145
+ </header>
146
+ );
147
+ };
148
+
149
+ export default Header;
@@ -1,12 +1,12 @@
1
- import React from "react";
2
- import * as styles from "./LoadingIndicator.module.css";
3
-
4
- const LoadingIndicator = () => {
5
- return (
6
- <div className={styles.loadingIndicator}>
7
- <div className={styles.loadingLine}></div>
8
- </div>
9
- );
10
- };
11
-
12
- export default LoadingIndicator;
1
+ import React from "react";
2
+ import * as styles from "./LoadingIndicator.module.css";
3
+
4
+ const LoadingIndicator = () => {
5
+ return (
6
+ <div className={styles.loadingIndicator}>
7
+ <div className={styles.loadingLine}></div>
8
+ </div>
9
+ );
10
+ };
11
+
12
+ export default LoadingIndicator;
@@ -1,34 +1,34 @@
1
- .loadingIndicator {
2
- position: fixed;
3
- top: 0;
4
- left: 0;
5
- width: 100%;
6
- height: 0.25rem;
7
- background-color: #4287f5;
8
- z-index: 9998;
9
- overflow: hidden;
10
- }
11
-
12
- .loadingLine {
13
- width: 100%;
14
- height: 100%;
15
- background: linear-gradient(90deg, transparent, #84f9f1, transparent);
16
- position: absolute;
17
- animation: loadingAnimation 0.5s ease-in-out infinite;
18
- }
19
-
20
- @keyframes loadingAnimation {
21
- 0% {
22
- transform: translateX(-100%);
23
- opacity: 0;
24
- }
25
-
26
- 50% {
27
- opacity: 1;
28
- }
29
-
30
- 100% {
31
- transform: translateX(100%);
32
- opacity: 0;
33
- }
34
- }
1
+ .loadingIndicator {
2
+ position: fixed;
3
+ top: 0;
4
+ left: 0;
5
+ width: 100%;
6
+ height: 0.25rem;
7
+ background-color: #4287f5;
8
+ z-index: 9998;
9
+ overflow: hidden;
10
+ }
11
+
12
+ .loadingLine {
13
+ width: 100%;
14
+ height: 100%;
15
+ background: linear-gradient(90deg, transparent, #84f9f1, transparent);
16
+ position: absolute;
17
+ animation: loadingAnimation 0.5s ease-in-out infinite;
18
+ }
19
+
20
+ @keyframes loadingAnimation {
21
+ 0% {
22
+ transform: translateX(-100%);
23
+ opacity: 0;
24
+ }
25
+
26
+ 50% {
27
+ opacity: 1;
28
+ }
29
+
30
+ 100% {
31
+ transform: translateX(100%);
32
+ opacity: 0;
33
+ }
34
+ }