Skip to content

Commit 81cffa0

Browse files
authored
Merge branch 'develop' into fix-tel
2 parents 7d61387 + 387e071 commit 81cffa0

File tree

11 files changed

+277
-271
lines changed

11 files changed

+277
-271
lines changed

.codeclimate.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,18 @@ checks:
3333
config:
3434
threshold: 4
3535
similar-code:
36-
enabled: true
36+
enabled: false
3737
config:
3838
threshold: #language-specific defaults. overrides affect all languages.
3939
identical-code:
40-
enabled: true
40+
enabled: false
4141
config:
4242
threshold: #language-specific defaults. overrides affect all languages.
4343
plugins:
4444
rubocop:
4545
enabled: true
4646
eslint:
47-
enabled: true
47+
enabled: false
4848
channel: eslint-8
4949
exclude_patterns:
5050
- "config/"

.github/workflows/dev-pulse-ci.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Devpulse CI
2+
3+
on:
4+
push:
5+
branches: [ develop ]
6+
pull_request:
7+
branches: [ develop ]
8+
9+
jobs:
10+
test-and-build:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v3
15+
16+
- name: Use Node.js
17+
uses: actions/setup-node@v3
18+
with:
19+
node-version: '18'
20+
21+
- name: Install dependencies
22+
run: npm install --legacy-peer-deps
23+
24+
- name: Run tests
25+
run: npm test
26+
27+
- name: Build
28+
run: npm run build

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
"@types/react-dom": "^18.0.6",
3737
"@types/react-table": "^7.7.12",
3838
"@types/redux-state-sync": "^3.1.5",
39+
"@types/uglify-js": "^3.17.5",
3940
"@typescript-eslint/eslint-plugin": "^5.47.0",
4041
"autoprefixer": "^10.4.7",
4142
"babel-loader": "^8.2.5",
@@ -107,7 +108,6 @@
107108
"popper.js": "^1.16.1",
108109
"react-datepicker": "^4.8.0",
109110
"react-hook-form": "^7.45.4",
110-
"react-hooks-useform": "^0.1.86",
111111
"react-hot-toast": "^2.4.1",
112112
"react-i18next": "^11.18.6",
113113
"react-icons": "^4.6.0",

src/components/GoogleForm/SaveForm.tsx

Lines changed: 27 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import axios from '../../redux/actions/axiosconfig';
33
import { showSuccessToast, showErrorToast } from './../../utils/toast';
44
import { useFormik } from 'formik';
55
import * as Yup from 'yup';
6+
import SelectField from "../ReusableComponents/Select"
67

78
const validationSchema = Yup.object().shape({
89
link: Yup.string().required('Please enter a Google Form link'),
@@ -160,11 +161,10 @@ function SaveFormDetails() {
160161
<div className='mt-1'>
161162
<input
162163
autoComplete='title'
163-
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 ${
164-
formik.touched.title && formik.errors.title
165-
? 'border-red-500'
166-
: ''
167-
}`}
164+
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 ${formik.touched.title && formik.errors.title
165+
? 'border-red-500'
166+
: ''
167+
}`}
168168
id='title'
169169
name='title'
170170
onChange={formik.handleChange}
@@ -190,27 +190,24 @@ function SaveFormDetails() {
190190
<label className='sr-only' htmlFor='jobpost'>
191191
Job Post
192192
</label>
193-
194-
<select
195-
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 pl-20 focus:border-indigo-500 focus:ring-indigo-500 ${
196-
formik.touched.jobpost && formik.errors.jobpost
197-
? 'border-red-500'
198-
: ''
199-
}`}
193+
<SelectField
194+
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 pl-20 focus:border-indigo-500 focus:ring-indigo-500 ${formik.touched.jobpost && formik.errors.jobpost
195+
? 'border-red-500'
196+
: ''
197+
}`}
200198
id='jobpost'
201199
name='jobpost'
202200
onChange={formik.handleChange}
203201
onBlur={formik.handleBlur}
204-
value={formik.values.jobpost}>
205-
{jobposts.length === 0 && (
206-
<option disabled>Select Job Post</option>
207-
)}
208-
{jobposts.map((jobpost) => (
209-
<option key={jobpost.id} value={jobpost.id}>
210-
{jobpost.title}
211-
</option>
212-
))}
213-
</select>
202+
value={formik.values.jobpost}
203+
options={
204+
jobposts.map((jobpost) => (
205+
<option key={jobpost.id} value={jobpost.id}>
206+
{jobpost.title}
207+
</option>
208+
))
209+
}
210+
/>
214211
</div>
215212
{formik.touched.jobpost && formik.errors.jobpost && (
216213
<div className='text-red-500'>{formik.errors.jobpost}</div>
@@ -228,11 +225,10 @@ function SaveFormDetails() {
228225
<div className='mt-1'>
229226
<input
230227
autoComplete='link'
231-
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 ${
232-
formik.touched.link && formik.errors.link
233-
? 'border-red-500'
234-
: ''
235-
}`}
228+
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 ${formik.touched.link && formik.errors.link
229+
? 'border-red-500'
230+
: ''
231+
}`}
236232
id='link'
237233
name='link'
238234
onChange={formik.handleChange}
@@ -255,11 +251,10 @@ function SaveFormDetails() {
255251

256252
<div className='mt-1'>
257253
<textarea
258-
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 ${
259-
formik.touched.description && formik.errors.description
260-
? 'border-red-500'
261-
: ''
262-
}`}
254+
className={`block w-full text-primary rounded-md border-gray-300 py-3 px-4 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 ${formik.touched.description && formik.errors.description
255+
? 'border-red-500'
256+
: ''
257+
}`}
263258
defaultValue=''
264259
id='description'
265260
name='description'

src/components/GoogleForm/UpdateSavedForm.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react';
22
import { useParams, Link } from 'react-router-dom';
33
import axios from '../../redux/actions/axiosconfig';
44
import { showSuccessToast, showErrorToast } from './../../utils/toast';
5+
import SelectField from '../ReusableComponents/Select';
56

67
const UpdateSavedForm = () => {
78
const [formData, setFormData] = useState({
@@ -177,18 +178,17 @@ const UpdateSavedForm = () => {
177178
</label>
178179
<div className='relative mt-1 rounded-md shadow-sm'>
179180
<div className='absolute inset-y-0 left-0 flex items-center'>
180-
<select
181-
id='jobpost'
182-
name='jobpost'
183-
value={selectedJobPost}
184-
onChange={handleJobPostChange}
185-
className='block w-full text-primary rounded-md border-gray-300 py-3 px-4 pl-20 focus:border-indigo-500 focus:ring-indigo-500'>
186-
{jobposts.map((jobpost) => (
187-
<option key={jobpost.id} value={jobpost.id}>
188-
{jobpost.title}
189-
</option>
190-
))}
191-
</select>
181+
<SelectField
182+
id="jobpost"
183+
name='jobpost'
184+
value={selectedJobPost}
185+
onChange={handleJobPostChange}
186+
className='block w-full text-primary rounded-md border-gray-300 py-3 px-4 pl-20 focus:border-indigo-500 focus:ring-indigo-500'
187+
options={jobposts.map((jobpost)=> ({
188+
value: jobpost.id,
189+
label: jobpost.title
190+
}))}
191+
/>
192192
</div>
193193
</div>
194194
</div>

src/components/GradingBox.tsx

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { connect } from 'react-redux';
55
import { toast } from 'react-toastify';
66
import { getAllAssessment } from '../redux/actions/getAssessments';
77
import { useAppDispatch } from "../hooks/hooks";
8+
import SelectField from './ReusableComponents/Select';
89

910
interface Grade {
1011
attribute: string;
@@ -256,25 +257,19 @@ function GradingBox(props: any) {
256257
</div>
257258
<div className="input mt-4 mb-4 h-9 ">
258259
<div className="grouped-input flex items-center h-full w-full rounded-md">
259-
<select
260-
name=""
260+
<SelectField
261261
className=" dark:text-white dark:bg-dark-tertiary border border-primary rounded outline-none px-5 font-sans text-sm py-2 w-full pt-4"
262-
defaultValue=""
263262
value={assessmentM}
264263
onChange={(e) => {
265264
setAssessmentM(e.target.value)
266265
changeAssess(0, e.target.value)
267266
}}
268-
>
269-
<option disabled hidden value="">{"---Choose Assessment---"}</option>
270-
{
271-
allAssessments?.data &&
272-
(allAssessments?.data.map((element) => {
273-
return (
274-
<option value={element.id}>{element.title}</option>)
275-
})
276-
)}
277-
</select>
267+
options={[{ value: "--- Choose assessment---", label: "Choose assessment" },
268+
allAssessments?.data.map((element) => ({
269+
value: element.id, label: element.label
270+
})
271+
)]}
272+
/>
278273
{assessmentM &&
279274
<div className='h-full w-[10%] pl-2 py-1 items-center'>
280275
<input
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import React from 'react';
2+
3+
interface DatalistProps {
4+
id: string;
5+
options: { value: string; label?: string }[];
6+
style?: React.CSSProperties;
7+
}
8+
9+
const Datalist: React.FC<DatalistProps> = ({ id, options }) => {
10+
return (
11+
<datalist id={id}>
12+
{options.map((option, index) => (
13+
<option key={index} value={option.value}>
14+
{option.label || option.value}
15+
</option>
16+
))}
17+
</datalist>
18+
);
19+
};
20+
21+
export default Datalist;
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import React from 'react';
2+
3+
interface SelectFieldProps {
4+
id?: string;
5+
name?: string;
6+
value?: string | number;
7+
options: { value: string | number; label: string }[];
8+
onChange?: (e: React.ChangeEvent<HTMLSelectElement>) => void;
9+
ref?: React.Ref<HTMLSelectElement>;
10+
className?: string;
11+
defaultValue?: string | number;
12+
onBlur?: (e: React.FocusEvent<HTMLSelectElement>) => void;
13+
}
14+
15+
const SelectField: React.FC<SelectFieldProps> = ({
16+
id,
17+
name,
18+
value,
19+
options,
20+
onChange,
21+
ref,
22+
className = "",
23+
defaultValue,
24+
onBlur
25+
}) => {
26+
return (
27+
<select
28+
id={id}
29+
name={name}
30+
ref={ref}
31+
defaultValue={defaultValue}
32+
value={value}
33+
onChange={onChange}
34+
className={`dark:bg-dark-tertiary dark:text-white shadow appearance-none py-2 px-3 rounded w-full leading-tight focus:outline-none focus:shadow-outline ${className}`}
35+
onBlur={(e: React.FocusEvent<HTMLSelectElement>) => onBlur?.(e)}
36+
>
37+
{options.map((option) => (
38+
<option key={option.value} value={option.value}>
39+
{option.label}
40+
</option>
41+
))}
42+
</select>
43+
);
44+
};
45+
46+
export default SelectField;

0 commit comments

Comments
 (0)