({ chatflow, isSettingsOpen, isCustomAssistant, anchorEl, isAgentCanvas, onSettingsItemClick, onUploadFile, onClose })
| 21 | // ==============================|| SETTINGS ||============================== // |
| 22 | |
| 23 | const Settings = ({ chatflow, isSettingsOpen, isCustomAssistant, anchorEl, isAgentCanvas, onSettingsItemClick, onUploadFile, onClose }) => { |
| 24 | const theme = useTheme() |
| 25 | const [settingsMenu, setSettingsMenu] = useState([]) |
| 26 | const customization = useSelector((state) => state.customization) |
| 27 | const inputFile = useRef(null) |
| 28 | const [open, setOpen] = useState(false) |
| 29 | const { hasPermission } = useAuth() |
| 30 | |
| 31 | const handleFileUpload = (e) => { |
| 32 | if (!e.target.files) return |
| 33 | |
| 34 | const file = e.target.files[0] |
| 35 | |
| 36 | const reader = new FileReader() |
| 37 | reader.onload = (evt) => { |
| 38 | if (!evt?.target?.result) { |
| 39 | return |
| 40 | } |
| 41 | const { result } = evt.target |
| 42 | onUploadFile(result) |
| 43 | } |
| 44 | reader.readAsText(file) |
| 45 | } |
| 46 | |
| 47 | useEffect(() => { |
| 48 | if (chatflow && !chatflow.id) { |
| 49 | const menus = isAgentCanvas ? agentsettings : settings |
| 50 | const settingsMenu = menus.children.filter((menu) => menu.id === 'loadChatflow') |
| 51 | setSettingsMenu(settingsMenu) |
| 52 | } else if (chatflow && chatflow.id) { |
| 53 | if (isCustomAssistant) { |
| 54 | const menus = customAssistantSettings |
| 55 | setSettingsMenu(menus.children) |
| 56 | } else { |
| 57 | const menus = isAgentCanvas ? agentsettings : settings |
| 58 | setSettingsMenu(menus.children) |
| 59 | } |
| 60 | } |
| 61 | }, [chatflow, isAgentCanvas, isCustomAssistant]) |
| 62 | |
| 63 | useEffect(() => { |
| 64 | setOpen(isSettingsOpen) |
| 65 | }, [isSettingsOpen]) |
| 66 | |
| 67 | // settings list items |
| 68 | const items = settingsMenu.map((menu) => { |
| 69 | if (menu.permission && !hasPermission(menu.permission)) { |
| 70 | return null |
| 71 | } |
| 72 | const Icon = menu.icon |
| 73 | const itemIcon = menu?.icon ? ( |
| 74 | <Icon stroke={1.5} size='1.3rem' /> |
| 75 | ) : ( |
| 76 | <FiberManualRecordIcon |
| 77 | sx={{ |
| 78 | width: customization.isOpen.findIndex((id) => id === menu?.id) > -1 ? 8 : 6, |
| 79 | height: customization.isOpen.findIndex((id) => id === menu?.id) > -1 ? 8 : 6 |
| 80 | }} |
nothing calls this directly
no test coverage detected