You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

HashPositions.jsx 2.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { useState } from 'react';
  2. import { RadioGroup } from '@headlessui/react';
  3. import propTypes from 'prop-types';
  4. const _data = {
  5. job: [{
  6. id:1,
  7. position: ".Net"
  8. },
  9. ]
  10. }
  11. export default function HashPositions(props) {
  12. let defaultPositionSelection = props.defaultPositionSelection;
  13. //const cntCareersJobs = props.cntCareers;
  14. let [selected, setSelected] = useState('#dotNet');
  15. function handleChange(event) {
  16. setSelected(event.target.innerText);
  17. //console.log(event.target.innerText);
  18. props.setSelectedPosition(event.target.innerText);
  19. }
  20. return (
  21. <RadioGroup
  22. value={
  23. defaultPositionSelection != null && defaultPositionSelection != ''
  24. ? defaultPositionSelection
  25. : selected
  26. }
  27. onChange={setSelected}
  28. className="flex flex-col items-start justify-center"
  29. >
  30. <RadioGroup.Label className="block text-sm font-medium text-gray-700 dark:text-gray-400 mr-4">
  31. Select Position
  32. </RadioGroup.Label>
  33. <div className="mt-1 mb-4 flex flex-row items-center justify-start">
  34. {_data.job.map(job => (
  35. <RadioGroup.Option key={job.id} value={'#' + job.position}>
  36. {({ checked }) => (
  37. <span
  38. onClick={() => {
  39. props.setOtherInputState(true);
  40. defaultPositionSelection = '';
  41. handleChange(event);
  42. props.hashToFormData(selected);
  43. }}
  44. className={
  45. checked
  46. ? 'transition-all bg-dg-primary-900 rounded-lg py-1 px-3 text-white text-sm mr-2'
  47. : 'transition-all px-3 mr-2 text-sm hover:cursor-pointer hover:bg-opacity-100 bg-opacity-50 py-1 bg-dg-primary-900 text-white rounded-lg hover:transition-all'
  48. }
  49. >
  50. {'#' + job.position}
  51. </span>
  52. )}
  53. </RadioGroup.Option>
  54. ))}
  55. <RadioGroup.Option value="#Other">
  56. {({ checked }) => (
  57. <span
  58. onClick={() => {
  59. props.setOtherInputState(false);
  60. defaultPositionSelection = '';
  61. props.setSelectedPosition('#Other');
  62. props.hashToFormData(selected);
  63. }}
  64. className={
  65. checked
  66. ? 'transition-all bg-dg-primary-900 rounded-lg py-1 px-3 text-white text-sm'
  67. : 'transition-all px-3 text-sm hover:cursor-pointer hover:bg-opacity-100 bg-opacity-50 py-1 bg-dg-primary-900 text-white rounded-lg hover:transition-all'
  68. }
  69. >
  70. #Other
  71. </span>
  72. )}
  73. </RadioGroup.Option>
  74. </div>
  75. </RadioGroup>
  76. );
  77. }
  78. HashPositions.propTypes = {
  79. otherInputState: propTypes.boolean,
  80. defaultPositionSelection: propTypes.string,
  81. setSelectedPosition: propTypes.func,
  82. };