import { useEffect, useState } from 'react' import propTypes from 'prop-types'; import MaximumLength from '@ckeditor/ckeditor5-react' import { categories, experience_levels } from '../consts'; import styles from '../style' import { CKEditor } from '@ckeditor/ckeditor5-react'; import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; import ImageUpload from './ImageUpload'; import SkillsSelector from './SkillsSelector'; import Salary from './Salary'; import { placeholderImage } from '../assets'; import Button from './Button'; const StepTwoJoblisting = ({ nextStep, prevStep, handleChange, formData, setFormData, removeFields, skills }) => { const [editorData, setEditorData] = useState(''); const [imageSrc, setImageSrc] = useState(placeholderImage); const max_words = 500; const countWords = (text) => { return text.split(/\s/).filter(function(n) { return n != '' }).length; } const validateForm2 = () => { const { name, company_name, localization, content, min_salary, max_salary, work_from_home, employment_type, image, skill_levels } = formData; if (!name || !company_name || !localization || !content || !min_salary || !max_salary || !work_from_home || !employment_type || !image || !skill_levels) { return true; } } useEffect(() => { if (formData.content) { console.log(countWords(formData.content)) if (countWords(formData.content) > max_words) { alert('Maksymalna liczba słów wynosi 500') } } }, [formData.content]) const handleNextStep = () => { if (validateForm()) { console.log(errors) nextStep(); // Przejście do następnego kroku } else { alert('Proszę wypełnić wszystkie wymagane pola.'); // Wyświetl komunikat o błędzie } }; const errorStyleInput = 'border-red-600' const [errors, setErrors] = useState({}); const validateForm = () => { let newErrors = {}; if (countWords(formData.content) > max_words) { newErrors.content = 'Maksymalna liczba słów wynosi 600'; } // Sprawdź każde wymagane pole if (!formData.name) { newErrors.name = 'To pole jest wymagane'; } if (!formData.company_name) { newErrors.company_name = 'To pole jest wymagane'; } if (!formData.localization) { newErrors.localization = 'To pole jest wymagane'; } if (!formData.content) { newErrors.content = 'To pole jest wymagane'; } console.log(formData.require_salary) if (formData.require_salary === true) { console.log(formData.require_salary) if (!formData.min_salary) { newErrors.min_salary = 'To pole jest wymagane'; } if (!formData.max_salary) { newErrors.max_salary = 'To pole jest wymagane'; } } if (!formData.work_from_home) { newErrors.work_from_home = 'To pole jest wymagane'; } if (!formData.employment_type) { newErrors.employment_type = 'To pole jest wymagane'; } if (!formData.image) { newErrors.image = 'To pole jest wymagane'; } if (Object.keys(formData.skill_levels).length === 0) { newErrors.skill_levels = 'To pole jest wymagane'; } setErrors(newErrors); // Zwróć true, jeśli nie ma błędów return Object.keys(newErrors).length === 0; }; return ( <>

Dodajesz ogłoszenie z izaac.pl

Nazwa ogłoszenia *
Strona internetowa
Adres siedziby *
Logo firmy *
Treść ogłoszenia *
{ // console.log(stats.words, stats.characters) // } // } // }} onChange={(event, editor) => { const data = editor.getData(); handleChange('content')(data); // Wywołanie zmodyfikowanej funkcji handleChange }} onReady={ editor => { // You can store the "editor" and use when it is needed. // console.log( 'Editor is ready to use!', editor ); } } onBlur={ ( event, editor ) => { // console.log( 'Blur.', editor ); } } onFocus={ ( event, editor ) => { // console.log( 'Focus.', editor ); } } />
Dodaj wybrane umiejętności *
Kategoria ogłoszenia i poziom doświadczenia *

Wybierz kategorię Twojego ogłoszenia

Poziom doświadczenia

Wynagrodzenie *
) } StepTwoJoblisting.propTypes = { nextStep: propTypes.func, prevStep: propTypes.func, handleChange: propTypes.func, formData: propTypes.object, setFormData: propTypes.func, removeFields: propTypes.func, skills: propTypes.array } export default StepTwoJoblisting