import React, { useCallback, useContext, useMemo } from 'react'; // @ts-ignore import cn from 'classnames'; import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors } from '@dnd-kit/core'; import { arrayMove, SortableContext, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy, } from '@dnd-kit/sortable'; import { CSS } from '@dnd-kit/utilities'; import last from 'lodash/last'; import { DevTechnology } from '../technologies/technology'; import { TechnologiesPickerContext } from '../technologies_picker_context'; import { Card, Slider, Tooltip, Typography } from '../../index'; import { TrashIcon } from '../../assets/icons/trash'; import { MoveIcon } from '../../assets/icons/move'; const TechnologyRow = ({ id, item, onDelete: onRemove, onChange, itemsLength, technologyIndex, hideSlider, }: { id: string; item: DevTechnology; onDelete: (name: string) => void; onChange: (id: DevTechnology) => void; technologyIndex: number; itemsLength: number; hideSlider?: boolean; }) => { const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id }); const style = { transform: CSS.Transform.toString(transform), transition, }; const { technologies, translations } = useContext(TechnologiesPickerContext); const sliderChange = useCallback( (e: any) => { onChange({ ...item, value: Number(e.target.value) }); }, [item, onChange] ); const imgUrl = useMemo(() => { const matchingItem = technologies.find((techno) => techno.name === item.name); if (matchingItem?.handle) { return `https://process.filestackapi.com/auto_image/${matchingItem?.handle ?? '4A5N89okRPW50jRcmkuM'}`; } const handle = last(matchingItem?.url.split('/')); return `https://process.filestackapi.com/auto_image/${handle ?? '4A5N89okRPW50jRcmkuM'}`; }, [item, technologies]); let divider =
; return (