5htp 0.3.9 → 0.4.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.
- package/package.json +1 -1
- package/src/compiler/common/babel/routes/routes.ts +13 -2
- package/src/compiler/common/index.ts +3 -1
- package/src/compiler/common/plugins/indexage/icones-svg/index.ts +3 -3
- package/skeleton/Dockerfile +0 -20
- package/skeleton/docker-compose.yml +0 -37
- package/skeleton/identity.yaml +0 -21
- package/skeleton/package.json +0 -48
- package/skeleton/src/client/assets/identity/logo.svg +0 -14
- package/skeleton/src/client/assets/identity/logoAndText.svg +0 -10
- package/skeleton/src/client/assets/identity/logoAndTextBlack.svg +0 -11
- package/skeleton/src/client/assets/illustration/landing/banner.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/candidate/employers.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/candidate/hero.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/candidate/mentors.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/headhunter/hero.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/hero.jpeg +0 -0
- package/skeleton/src/client/assets/illustration/landing/hero.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/hero.xcf +0 -0
- package/skeleton/src/client/assets/illustration/landing/recruiter/onboarding.webp +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/andre.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/emma.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/fei.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/gaetan.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/jordan.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/lery.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/mehdi.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/omkar.png +0 -0
- package/skeleton/src/client/assets/illustration/landing/team/thibaut.png +0 -0
- package/skeleton/src/client/assets/illustration/launch.jpg +0 -0
- package/skeleton/src/client/assets/img/background/header-blur.png +0 -0
- package/skeleton/src/client/assets/img/partners/citron.svg +0 -987
- package/skeleton/src/client/assets/logos/google-play-store.svg +0 -1
- package/skeleton/src/client/assets/logos/googleauth.svg +0 -9
- package/skeleton/src/client/assets/patterns/dots.png +0 -0
- package/skeleton/src/client/assets/patterns/interlaced.png +0 -0
- package/skeleton/src/client/assets/theme.less +0 -231
- package/skeleton/src/client/assets/vars.less +0 -54
- package/skeleton/src/client/context.ts +0 -23
- package/skeleton/src/client/index.ts +0 -59
- package/skeleton/src/client/pages/_messages/400.tsx +0 -45
- package/skeleton/src/client/pages/_messages/401.tsx +0 -39
- package/skeleton/src/client/pages/_messages/403.tsx +0 -43
- package/skeleton/src/client/pages/_messages/404.tsx +0 -42
- package/skeleton/src/client/pages/_messages/500.tsx +0 -42
- package/skeleton/src/client/pages/platform/Header.less +0 -12
- package/skeleton/src/client/pages/platform/Header.tsx +0 -119
- package/skeleton/src/client/pages/platform/_layout/index.less +0 -118
- package/skeleton/src/client/pages/platform/_layout/index.tsx +0 -131
- package/skeleton/src/client/pages/platform/_layout/mobile.less +0 -114
- package/skeleton/src/client/pages/platform/_page.tsx +0 -54
- package/skeleton/src/client/pages/platform/headhunters/index.tsx +0 -88
- package/skeleton/src/client/pages/platform/index.tsx +0 -58
- package/skeleton/src/client/pages/platform/missions/index.tsx +0 -149
- package/skeleton/src/client/pages/preload.json +0 -3
- package/skeleton/src/client/services/metrics/index.ts +0 -59
- package/skeleton/src/client/tsconfig.json +0 -31
- package/skeleton/src/common/config/router.ts +0 -16
- package/skeleton/src/common/forms/company/bookCall.ts +0 -25
- package/skeleton/src/common/forms/company/importJob.ts +0 -26
- package/skeleton/src/common/forms/company/signup.ts +0 -31
- package/skeleton/src/common/forms/headhunter/feedback.ts +0 -31
- package/skeleton/src/common/forms/headhunter/mission/cancel.ts +0 -26
- package/skeleton/src/common/forms/headhunter/mission/candidate/availability.ts +0 -31
- package/skeleton/src/common/forms/headhunter/mission/candidate/education.ts +0 -19
- package/skeleton/src/common/forms/headhunter/mission/candidate/identity.ts +0 -31
- package/skeleton/src/common/forms/headhunter/mission/candidate/others.ts +0 -19
- package/skeleton/src/common/forms/headhunter/mission/candidate/skills.ts +0 -21
- package/skeleton/src/common/forms/headhunter/mission/reject.ts +0 -23
- package/skeleton/src/common/forms/headhunter/mission/search.ts +0 -78
- package/skeleton/src/common/forms/headhunter/signup.ts +0 -34
- package/skeleton/src/common/libs/headhunter/candidate/index.ts +0 -155
- package/skeleton/src/common/libs/headhunter/mission/index.ts +0 -30
- package/skeleton/src/common/libs/hub/index.ts +0 -41
- package/skeleton/src/common/tsconfig.json +0 -10
- package/skeleton/src/server/config/communication.ts +0 -48
- package/skeleton/src/server/config/crosspath.ts +0 -9
- package/skeleton/src/server/config/data.ts +0 -34
- package/skeleton/src/server/config/database.ts +0 -26
- package/skeleton/src/server/config/internal.ts +0 -21
- package/skeleton/src/server/config/user.ts +0 -90
- package/skeleton/src/server/index.ts +0 -111
- package/skeleton/src/server/libs/utils/slug.ts +0 -11
- package/skeleton/src/server/routes/global.ts +0 -33
- package/skeleton/src/server/routes/headhunters.ts +0 -24
- package/skeleton/src/server/routes/missions.ts +0 -50
- package/skeleton/src/server/services/Headhunter/index.ts +0 -127
- package/skeleton/src/server/services/Headhunter/service.json +0 -6
- package/skeleton/src/server/services/Mission/index.ts +0 -174
- package/skeleton/src/server/services/Mission/service.json +0 -6
- package/skeleton/src/server/services/email/sendgrid/index.ts +0 -97
- package/skeleton/src/server/services/email/sendgrid/service.json +0 -6
- package/skeleton/src/server/services/slack/index.ts +0 -105
- package/skeleton/src/server/services/slack/service.json +0 -6
- package/skeleton/src/server/services/users/index.ts +0 -133
- package/skeleton/src/server/services/users/service.json +0 -6
- package/skeleton/src/server/tsconfig.json +0 -32
- package/skeleton/var/typings/routes.d.ts +0 -541
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 408 466.9" width="2185" height="2500"><style>.st0{fill:url(#SVGID_1_)}.st1{fill:url(#SVGID_2_)}.st2{fill:url(#SVGID_3_)}.st3{fill:url(#SVGID_4_)}</style><linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" y1="112.094" x2="261.746" y2="112.094"><stop offset="0" stop-color="#63be6b"/><stop offset=".506" stop-color="#5bbc6a"/><stop offset="1" stop-color="#4ab96a"/></linearGradient><path class="st0" d="M261.7 142.3L15 1.3C11.9-.5 8-.4 5 1.4c-3.1 1.8-5 5-5 8.6 0 0 .1 13 .2 34.4l179.7 179.7 81.8-81.8z"/><linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1=".152" y1="223.393" x2="179.896" y2="223.393"><stop offset="0" stop-color="#3ec6f2"/><stop offset="1" stop-color="#45afe3"/></linearGradient><path class="st1" d="M.2 44.4C.5 121.6 1.4 309 1.8 402.3L180 224.1.2 44.4z"/><linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="179.896" y1="229.464" x2="407.976" y2="229.464"><stop offset="0" stop-color="#faa51a"/><stop offset=".387" stop-color="#fab716"/><stop offset=".741" stop-color="#fac412"/><stop offset="1" stop-color="#fac80f"/></linearGradient><path class="st2" d="M402.9 223l-141.2-80.7-81.9 81.8 92.4 92.4L403 240.3c3.1-1.8 5-5.1 5-8.6 0-3.6-2-6.9-5.1-8.7z"/><linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="1.744" y1="345.521" x2="272.296" y2="345.521"><stop offset="0" stop-color="#ec3b50"/><stop offset="1" stop-color="#e7515b"/></linearGradient><path class="st3" d="M1.7 402.3c.2 33.3.3 54.6.3 54.6 0 3.6 1.9 6.9 5 8.6 3.1 1.8 6.9 1.8 10 0l255.3-148.9-92.4-92.4L1.7 402.3z"/></svg>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
-
<g transform="matrix(1, 0, 0, 1, 27.009001, -39.238998)">
|
|
4
|
-
<path fill="#4285F4" d="M -3.264 51.509 C -3.264 50.719 -3.334 49.969 -3.454 49.239 L -14.754 49.239 L -14.754 53.749 L -8.284 53.749 C -8.574 55.229 -9.424 56.479 -10.684 57.329 L -10.684 60.329 L -6.824 60.329 C -4.564 58.239 -3.264 55.159 -3.264 51.509 Z"/>
|
|
5
|
-
<path fill="#34A853" d="M -14.754 63.239 C -11.514 63.239 -8.804 62.159 -6.824 60.329 L -10.684 57.329 C -11.764 58.049 -13.134 58.489 -14.754 58.489 C -17.884 58.489 -20.534 56.379 -21.484 53.529 L -25.464 53.529 L -25.464 56.619 C -23.494 60.539 -19.444 63.239 -14.754 63.239 Z"/>
|
|
6
|
-
<path fill="#FBBC05" d="M -21.484 53.529 C -21.734 52.809 -21.864 52.039 -21.864 51.239 C -21.864 50.439 -21.724 49.669 -21.484 48.949 L -21.484 45.859 L -25.464 45.859 C -26.284 47.479 -26.754 49.299 -26.754 51.239 C -26.754 53.179 -26.284 54.999 -25.464 56.619 L -21.484 53.529 Z"/>
|
|
7
|
-
<path fill="#EA4335" d="M -14.754 43.989 C -12.984 43.989 -11.404 44.599 -10.154 45.789 L -6.734 42.369 C -8.804 40.429 -11.514 39.239 -14.754 39.239 C -19.444 39.239 -23.494 41.939 -25.464 45.859 L -21.484 48.949 C -20.534 46.099 -17.884 43.989 -14.754 43.989 Z"/>
|
|
8
|
-
</g>
|
|
9
|
-
</svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- GLOBAL THEMES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
:root {
|
|
6
|
-
|
|
7
|
-
--bgOverlay: fade(@c1 + #666, 70%);
|
|
8
|
-
|
|
9
|
-
--cSuccess: @cSuccess;
|
|
10
|
-
--cError: @cError;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
body {
|
|
15
|
-
|
|
16
|
-
::selection {
|
|
17
|
-
background: @cDark;
|
|
18
|
-
color: #fff;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/*----------------------------------
|
|
23
|
-
- BASIC THEMES
|
|
24
|
-
----------------------------------*/
|
|
25
|
-
|
|
26
|
-
@whiteTheme: {
|
|
27
|
-
background: #FFF;
|
|
28
|
-
foreground: #8E8E8E;
|
|
29
|
-
accent1: @c1;
|
|
30
|
-
accent2: @c2;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@greyTheme: {
|
|
34
|
-
background: #F5F5F5;
|
|
35
|
-
foreground: #8E8E8E;
|
|
36
|
-
accent1: @c1;
|
|
37
|
-
accent2: @c2;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@silverTheme: {
|
|
41
|
-
background: #eee;
|
|
42
|
-
foreground: #777;
|
|
43
|
-
accent1: @c1;
|
|
44
|
-
accent2: @c2;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
@darkTheme: {
|
|
48
|
-
background: #050505;
|
|
49
|
-
foreground: #999;
|
|
50
|
-
accent1: #E17DB2;
|
|
51
|
-
accent2: @c2;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@darkerTheme: {
|
|
55
|
-
background: #181818;
|
|
56
|
-
foreground: #bbb;
|
|
57
|
-
accent1: #fff;
|
|
58
|
-
accent2: @c2;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@darkestTheme: {
|
|
62
|
-
background: #242424;
|
|
63
|
-
foreground: #ddd;
|
|
64
|
-
accent1: #fff;
|
|
65
|
-
accent2: @c2;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
body,
|
|
69
|
-
.bg.grey {
|
|
70
|
-
.apply-theme(@greyTheme, @whiteTheme);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.card,
|
|
74
|
-
.bg.white {
|
|
75
|
-
.apply-theme(@whiteTheme, @greyTheme);
|
|
76
|
-
|
|
77
|
-
// TODO: incliude these params in the theme map
|
|
78
|
-
box-shadow: 0 3px 2px fade(#000, 10%);
|
|
79
|
-
border: 1px solid fade(#000, 10%);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.bg.silver {
|
|
83
|
-
.apply-theme(@silverTheme, @whiteTheme);
|
|
84
|
-
|
|
85
|
-
box-shadow: inset 0 0 20px fade(#000, 5%)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.bg.dark {
|
|
89
|
-
.apply-theme(@darkTheme, @darkerTheme);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.bg.darker {
|
|
93
|
-
.apply-theme(@darkerTheme, @darkestTheme);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/*----------------------------------
|
|
97
|
-
- COLOR THEMES
|
|
98
|
-
----------------------------------*/
|
|
99
|
-
|
|
100
|
-
@primaryTheme: {
|
|
101
|
-
background: #111;
|
|
102
|
-
foreground: #fff;
|
|
103
|
-
accent1: #FFF;
|
|
104
|
-
accent2: #FFF;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
@secondaryTheme: {
|
|
108
|
-
background: #F5F5F5;
|
|
109
|
-
foreground: #8E8E8E;
|
|
110
|
-
accent1: @c1;
|
|
111
|
-
accent2: @c2;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
@accentTheme: {
|
|
115
|
-
background: @c1;
|
|
116
|
-
foreground: #fff;
|
|
117
|
-
accent1: #fff;
|
|
118
|
-
accent2: #fff;;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.bg.primary {
|
|
122
|
-
|
|
123
|
-
.apply-theme(@primaryTheme);
|
|
124
|
-
|
|
125
|
-
&.btn:hover {
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
.bg.secondary {
|
|
131
|
-
.apply-theme(@secondaryTheme);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
.bg.accent {
|
|
135
|
-
.apply-theme(@accentTheme);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.color-theme( @color ) {
|
|
139
|
-
.apply-theme({
|
|
140
|
-
background: @color;
|
|
141
|
-
foreground: #111;
|
|
142
|
-
accent1: #111;
|
|
143
|
-
accent2: #111;
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
.bg.light1 { .color-theme(#cce0fe ); }
|
|
148
|
-
.bg.light2 { .color-theme(#c7f0ee ); }
|
|
149
|
-
.bg.light3 { .color-theme(#cef5d2 ); }
|
|
150
|
-
.bg.light4 { .color-theme(#feeab6 ); }
|
|
151
|
-
.bg.light5 { .color-theme(#ffdccc ); }
|
|
152
|
-
.bg.light6 { .color-theme(#fcccf0 ); }
|
|
153
|
-
.bg.light7 { .color-theme(#e2d5f7 ); }
|
|
154
|
-
|
|
155
|
-
.bg.success {
|
|
156
|
-
box-shadow: none;
|
|
157
|
-
border: none;
|
|
158
|
-
.apply-theme({
|
|
159
|
-
background: lighten( @cSuccess, 30% );
|
|
160
|
-
foreground: darken( @cSuccess, 50% );
|
|
161
|
-
accent1: #111;
|
|
162
|
-
accent2: #111;
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.bg.error {
|
|
167
|
-
box-shadow: none;
|
|
168
|
-
border: none;
|
|
169
|
-
.apply-theme({
|
|
170
|
-
background: lighten( @cError, 20% );
|
|
171
|
-
foreground: darken( @cError, 50% );
|
|
172
|
-
accent1: #111;
|
|
173
|
-
accent2: #111;
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
.bg.warn {
|
|
178
|
-
box-shadow: none;
|
|
179
|
-
border: none;
|
|
180
|
-
.apply-theme({
|
|
181
|
-
background: lighten( @cWarn, 20% );
|
|
182
|
-
foreground: darken( @cWarn, 50% );
|
|
183
|
-
accent1: #111;
|
|
184
|
-
accent2: #111;
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
.bg.info {
|
|
189
|
-
box-shadow: none;
|
|
190
|
-
border: none;
|
|
191
|
-
.apply-theme({
|
|
192
|
-
background: lighten( @cInfo, 50% );
|
|
193
|
-
foreground: darken( @cInfo, 50% );
|
|
194
|
-
accent1: #111;
|
|
195
|
-
accent2: #111;
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/*----------------------------------
|
|
200
|
-
- GRADIENT & IMG THEMES
|
|
201
|
-
----------------------------------*/
|
|
202
|
-
|
|
203
|
-
.bg.img {
|
|
204
|
-
|
|
205
|
-
&.blur {
|
|
206
|
-
background: url("./img/background/header-blur.png") center;
|
|
207
|
-
background-size: cover;
|
|
208
|
-
box-shadow: 0 10px 20px fade(#000, 10%);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/*----------------------------------
|
|
213
|
-
- FOREGROUND THEMES
|
|
214
|
-
----------------------------------*/
|
|
215
|
-
|
|
216
|
-
// Color themes
|
|
217
|
-
.primary.fg {
|
|
218
|
-
.build-theme-fg(@c1, #fff);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
.fg {
|
|
222
|
-
&.success { .build-theme-fg( @cSuccess ); }
|
|
223
|
-
&.error { .build-theme-fg( @cError ); }
|
|
224
|
-
&.warn { .build-theme-fg( @cWarn ); }
|
|
225
|
-
|
|
226
|
-
&.gold { .build-theme-fg( #FFD700 - #222 ); }
|
|
227
|
-
|
|
228
|
-
&.gradient {
|
|
229
|
-
color: #B4C77C;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- SIZES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
@componentsSelector: ~".card, .btn, .input.text, .input.select, i.solid, .logo";
|
|
6
|
-
|
|
7
|
-
/*
|
|
8
|
-
WARN: ALL MEASURES SHOULD BE IN EM
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
// Text
|
|
12
|
-
@sTxtPage: calc(12px + 0.10vw);
|
|
13
|
-
@sIcon: 1.3em;
|
|
14
|
-
|
|
15
|
-
// Components
|
|
16
|
-
@radius: 0.75rem;
|
|
17
|
-
@sizeComponent: 4em;
|
|
18
|
-
// Spacing
|
|
19
|
-
@spacing: 1.2em;
|
|
20
|
-
@pageWidth: 30rem;
|
|
21
|
-
|
|
22
|
-
@cardPadding: @spacing * 1.5;
|
|
23
|
-
@cardPaddingLong: @spacing * 1.8;
|
|
24
|
-
|
|
25
|
-
@h1Size: 1.7em;
|
|
26
|
-
@h2Size: 1.5em;
|
|
27
|
-
@h3Size: 1.16em;
|
|
28
|
-
|
|
29
|
-
/*----------------------------------
|
|
30
|
-
- COLORS
|
|
31
|
-
----------------------------------*/
|
|
32
|
-
|
|
33
|
-
/* TO BE REMOVED */@cBgPage: #fff;
|
|
34
|
-
|
|
35
|
-
// Primary colors palette
|
|
36
|
-
@c1: #7A32B3; // Should be darker than c1
|
|
37
|
-
@c2: #61288F;//#3bffb1 // Should be lighter than c2
|
|
38
|
-
@c3: red;
|
|
39
|
-
|
|
40
|
-
@cDark: #333;//#2C0653;
|
|
41
|
-
|
|
42
|
-
// Status colors
|
|
43
|
-
@cSuccess: #16f7e8 - #333;
|
|
44
|
-
@cError: #f67273;
|
|
45
|
-
@cWarn: #FFBA7B;
|
|
46
|
-
@cInfo: @c1;
|
|
47
|
-
|
|
48
|
-
/*----------------------------------
|
|
49
|
-
- LAYOUT
|
|
50
|
-
----------------------------------*/
|
|
51
|
-
|
|
52
|
-
@layoutWidth: 150em;
|
|
53
|
-
@navigSidebarWidth: 20em;
|
|
54
|
-
@userSidebarWidth: 23em;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// TODO: move it into core (but how to make sure usecontext returns CrossPath's context ?)
|
|
2
|
-
import React from 'react';
|
|
3
|
-
|
|
4
|
-
import type CrossPathServer from '@/server/app';
|
|
5
|
-
import type { TRouterContext as TServerRouterRequestContext } from '@server/services/router/response';
|
|
6
|
-
import type { TRouterContext as TClientRouterRequestContext } from '@client/services/router/response';
|
|
7
|
-
import type CrossPathClient from '.';
|
|
8
|
-
|
|
9
|
-
// TO Fix: TClientRouterRequestContext is unable to get the right type of CrossPathClient["router"]
|
|
10
|
-
// (it gets ClientApplication instead of CrossPathClient)
|
|
11
|
-
type ClientRequestContext = TClientRouterRequestContext<CrossPathClient["router"], CrossPathClient>;
|
|
12
|
-
type ServerRequestContext = TServerRouterRequestContext<CrossPathServer["router"]>
|
|
13
|
-
type UniversalServices = ClientRequestContext | ServerRequestContext
|
|
14
|
-
|
|
15
|
-
// Non-universla services are flagged as potentially undefined
|
|
16
|
-
export type ClientContext = (
|
|
17
|
-
UniversalServices
|
|
18
|
-
&
|
|
19
|
-
Partial<Omit<ClientRequestContext, keyof UniversalServices>>
|
|
20
|
-
)
|
|
21
|
-
|
|
22
|
-
export const ReactClientContext = React.createContext<ClientContext>({} as ClientContext);
|
|
23
|
-
export default (): ClientContext => React.useContext<ClientContext>(ReactClientContext);
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Core
|
|
6
|
-
import ClientApplication from '@client/app';
|
|
7
|
-
import type { CoreError } from '@common/errors';
|
|
8
|
-
|
|
9
|
-
// Core Services
|
|
10
|
-
import Router from '@client/services/router';
|
|
11
|
-
|
|
12
|
-
// App Services
|
|
13
|
-
import MetricsService from '@/client/services/metrics';
|
|
14
|
-
|
|
15
|
-
// Config
|
|
16
|
-
import { domains } from '@/common/config/router';
|
|
17
|
-
|
|
18
|
-
/*----------------------------------
|
|
19
|
-
- TYPES
|
|
20
|
-
----------------------------------*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
/*----------------------------------
|
|
24
|
-
- APPLICATION
|
|
25
|
-
----------------------------------*/
|
|
26
|
-
export class CrossPathCSM extends ClientApplication {
|
|
27
|
-
|
|
28
|
-
public Router = new Router(this, {
|
|
29
|
-
preload: [],
|
|
30
|
-
|
|
31
|
-
domains: __DEV__ ? {
|
|
32
|
-
...domains.local,
|
|
33
|
-
current: domains.local.recruiters,
|
|
34
|
-
} : {
|
|
35
|
-
...domains.prod,
|
|
36
|
-
current: domains.prod.recruiters,
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
context: (context, router) => ({
|
|
40
|
-
user: context.user || router.ssrContext.user
|
|
41
|
-
})
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
public metrics = new MetricsService(this);
|
|
45
|
-
|
|
46
|
-
public boot(): void {
|
|
47
|
-
// Tracking
|
|
48
|
-
this.Router.on('page.changed', () => {
|
|
49
|
-
this.metrics.event('pageview');
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
public handleError( error: CoreError | Error, httpCode?: number ) {
|
|
54
|
-
this.toast.error( error.message, undefined, null, { autohide: false });
|
|
55
|
-
// TODO: modal with conffeti
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export default CrossPathCSM
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Npm
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
// Core
|
|
9
|
-
import { Router } from '@app';
|
|
10
|
-
import { Button } from '@client/components';
|
|
11
|
-
|
|
12
|
-
// App
|
|
13
|
-
import useHeader from '@client/pages/useHeader';
|
|
14
|
-
|
|
15
|
-
/*----------------------------------
|
|
16
|
-
- CONTROLEUR
|
|
17
|
-
----------------------------------*/
|
|
18
|
-
Router.error( 400, {}, ({ data }) => {
|
|
19
|
-
|
|
20
|
-
useHeader({
|
|
21
|
-
title: 'Bad request',
|
|
22
|
-
subtitle: data.message
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<div class="card w-3-4 col pd-2">
|
|
27
|
-
|
|
28
|
-
<div class="col al-center">
|
|
29
|
-
|
|
30
|
-
<i src="times-circle" class="fg error xxl" />
|
|
31
|
-
|
|
32
|
-
<h1>Bad Request</h1>
|
|
33
|
-
|
|
34
|
-
<p>{data.message}</p>
|
|
35
|
-
|
|
36
|
-
Do you think this is not normal?
|
|
37
|
-
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
<Button type="primary" link="https://crosspathworkspace.slack.com/archives/C04L2TGR5J6">
|
|
41
|
-
Report to the dev team
|
|
42
|
-
</Button>
|
|
43
|
-
</div>
|
|
44
|
-
)
|
|
45
|
-
});
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Npm
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
// Core
|
|
9
|
-
import { Router } from '@app';
|
|
10
|
-
import { Button } from '@client/components';
|
|
11
|
-
|
|
12
|
-
// App
|
|
13
|
-
import useHeader from '@client/pages/useHeader';
|
|
14
|
-
|
|
15
|
-
/*----------------------------------
|
|
16
|
-
- RESSOURCES
|
|
17
|
-
----------------------------------*/
|
|
18
|
-
|
|
19
|
-
/*----------------------------------
|
|
20
|
-
- CONTROLEUR
|
|
21
|
-
----------------------------------*/
|
|
22
|
-
Router.error( 401, {}, ({ message, request, page }) => {
|
|
23
|
-
|
|
24
|
-
useHeader({
|
|
25
|
-
title: 'Authentication Required',
|
|
26
|
-
subtitle: message
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<div class="card w-3-4 col al-center pd-2">
|
|
31
|
-
|
|
32
|
-
<i src="times-circle" class="fg error xxl" />
|
|
33
|
-
|
|
34
|
-
<h1>Authentication Required</h1>
|
|
35
|
-
|
|
36
|
-
<p>{message}</p>
|
|
37
|
-
</div>
|
|
38
|
-
)
|
|
39
|
-
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Npm
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
// Core
|
|
9
|
-
import { Router } from '@app';
|
|
10
|
-
import { Button } from '@client/components';
|
|
11
|
-
|
|
12
|
-
// App
|
|
13
|
-
import useHeader from '@client/pages/useHeader';
|
|
14
|
-
|
|
15
|
-
/*----------------------------------
|
|
16
|
-
- CONTROLEUR
|
|
17
|
-
----------------------------------*/
|
|
18
|
-
Router.error( 403, {}, ({ data }) => {
|
|
19
|
-
|
|
20
|
-
useHeader({
|
|
21
|
-
title: 'Access Denied.',
|
|
22
|
-
subtitle: data.message
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<div class="card w-3-4 col pd-2">
|
|
27
|
-
|
|
28
|
-
<div class="col al-center">
|
|
29
|
-
|
|
30
|
-
<i src="times-circle" class="fg error xxl" />
|
|
31
|
-
|
|
32
|
-
<h1>Access Denied.</h1>
|
|
33
|
-
|
|
34
|
-
<p>{data.message}</p>
|
|
35
|
-
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
<Button type="primary" link="https://crosspathworkspace.slack.com/archives/C04L2TGR5J6">
|
|
39
|
-
Report to the dev team
|
|
40
|
-
</Button>
|
|
41
|
-
</div>
|
|
42
|
-
)
|
|
43
|
-
});
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Npm
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
// Core
|
|
9
|
-
import { Router } from '@app';
|
|
10
|
-
import { Button } from '@client/components';
|
|
11
|
-
|
|
12
|
-
// App
|
|
13
|
-
import useHeader from '@client/pages/useHeader';
|
|
14
|
-
|
|
15
|
-
/*----------------------------------
|
|
16
|
-
- CONTROLEUR
|
|
17
|
-
----------------------------------*/
|
|
18
|
-
Router.error( 404, {}, ({ data }) => {
|
|
19
|
-
|
|
20
|
-
useHeader({
|
|
21
|
-
title: 'Page Not Found',
|
|
22
|
-
subtitle: data.message
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<div class="card w-3-4 col pd-2">
|
|
27
|
-
|
|
28
|
-
<div class="col al-center">
|
|
29
|
-
|
|
30
|
-
<i src="times-circle" class="fg error xxl" />
|
|
31
|
-
|
|
32
|
-
<h1>Page Not Found</h1>
|
|
33
|
-
|
|
34
|
-
<p>{data.message}</p>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<Button type="primary" link="https://crosspathworkspace.slack.com/archives/C04L2TGR5J6">
|
|
38
|
-
Report to the dev team
|
|
39
|
-
</Button>
|
|
40
|
-
</div>
|
|
41
|
-
)
|
|
42
|
-
});
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/*----------------------------------
|
|
2
|
-
- DEPENDANCES
|
|
3
|
-
----------------------------------*/
|
|
4
|
-
|
|
5
|
-
// Npm
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
// Core
|
|
9
|
-
import { Router } from '@app';
|
|
10
|
-
import { Button } from '@client/components';
|
|
11
|
-
|
|
12
|
-
// App
|
|
13
|
-
import useHeader from '@client/pages/useHeader';
|
|
14
|
-
|
|
15
|
-
/*----------------------------------
|
|
16
|
-
- CONTROLEUR
|
|
17
|
-
----------------------------------*/
|
|
18
|
-
Router.error( 500, {}, ({ data }) => {
|
|
19
|
-
|
|
20
|
-
useHeader({
|
|
21
|
-
title: 'Technical Error',
|
|
22
|
-
subtitle: data.message
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<div class="card w-3-4 col pd-2">
|
|
27
|
-
|
|
28
|
-
<div class="col al-center">
|
|
29
|
-
|
|
30
|
-
<i src="times-circle" class="fg error xxl" />
|
|
31
|
-
|
|
32
|
-
<h1>Technical Error</h1>
|
|
33
|
-
|
|
34
|
-
<p>{data.message}</p>
|
|
35
|
-
</div>
|
|
36
|
-
|
|
37
|
-
<Button type="primary" link="https://crosspathworkspace.slack.com/archives/C04L2TGR5J6">
|
|
38
|
-
Report to the dev team
|
|
39
|
-
</Button>
|
|
40
|
-
</div>
|
|
41
|
-
)
|
|
42
|
-
});
|