diff --git a/frontend/src/HomePage/Folders.jsx b/frontend/src/HomePage/Folders.jsx new file mode 100644 index 0000000000..b67612fec4 --- /dev/null +++ b/frontend/src/HomePage/Folders.jsx @@ -0,0 +1,73 @@ +import React, { useState } from 'react'; +import { folderService } from '@/_services'; +import { toast } from 'react-toastify'; + +export const Folders = function Folders({ + +}) { + + const [isLoading, setLoadingStatus] = useState(false); + const [showForm, setShowForm] = useState(false); + const [isCreating, setCreationStatus] = useState(false); + const [newFolderName, setNewFolderName] = useState(''); + + function saveFolder() { + setCreationStatus(true); + folderService.create(newFolderName).then(() => { + toast.info('folder created.', { + hideProgressBar: true, + position: 'top-left' + }); + setCreationStatus(false); + setShowForm(false); + setNewFolderName(''); + }) + } + + return (
+ {isLoading && ( +
+
+
+
+
+ )} + + {!isLoading && ( +
+ + + All applications + + {/* {meta.count} */} + + + {!showForm && + setShowForm(true)}> + + Folder + + } + {showForm && +
+
+ onComponentClick(id, component)} + type="text" + type="text" + onChange={(e) => setNewFolderName(e.target.value)} + className="form-control" + placeholder="folder name" + disabled={isCreating} + /> +
+
+ +
+
+ } +
+ )} +
) +} diff --git a/frontend/src/HomePage/HomePage.jsx b/frontend/src/HomePage/HomePage.jsx index b5bb1e6f58..f76b12d28b 100644 --- a/frontend/src/HomePage/HomePage.jsx +++ b/frontend/src/HomePage/HomePage.jsx @@ -1,9 +1,9 @@ import React from 'react'; import { appService, authenticationService } from '@/_services'; import { Link } from 'react-router-dom'; -import Skeleton from 'react-loading-skeleton'; import { history } from '@/_helpers'; import { Pagination } from '@/_components'; +import { Folders } from './Folders'; class HomePage extends React.Component { constructor(props) { @@ -158,32 +158,7 @@ class HomePage extends React.Component {

-
- - {isLoading && ( -
-
-
-
-
- )} - - {!isLoading && ( - - )} -
- +
@@ -191,7 +166,7 @@ class HomePage extends React.Component {
-

Your applications

+

App applications

diff --git a/frontend/src/_services/folder.service.js b/frontend/src/_services/folder.service.js new file mode 100644 index 0000000000..db4e41ada0 --- /dev/null +++ b/frontend/src/_services/folder.service.js @@ -0,0 +1,16 @@ +import config from 'config'; +import { authHeader, handleResponse } from '@/_helpers'; + +export const folderService = { + create, +}; + + +function create(name) { + const body = { + name + }; + + const requestOptions = { method: 'POST', headers: authHeader(), body: JSON.stringify(body) }; + return fetch(`${config.apiUrl}/folders`, requestOptions).then(handleResponse); +} diff --git a/frontend/src/_services/index.js b/frontend/src/_services/index.js index e658f2d719..71929dce27 100644 --- a/frontend/src/_services/index.js +++ b/frontend/src/_services/index.js @@ -7,3 +7,4 @@ export * from './organization.service'; export * from './appVersion.service'; export * from './organization_user.service'; export * from './openapi.service'; +export * from './folder.service';