Skip to content
Snippets Groups Projects
Commit 9be9ff99 authored by Ganapathi Subramanyam  Jayam's avatar Ganapathi Subramanyam Jayam :dart:
Browse files

link update

parent a20743cf
No related branches found
No related tags found
No related merge requests found
import { React,useState,Fragment } from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faFolder } from "@fortawesome/free-solid-svg-icons"
import { Button,Modal,Form } from "react-bootstrap";
import { Link } from "react-router-dom";
import { useHistory } from "react-router-dom";
import { React, useState, Fragment } from 'react'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faFolder } from '@fortawesome/free-solid-svg-icons'
import { Button, Modal, Form } from 'react-bootstrap'
import { Link } from 'react-router-dom'
import { useHistory } from 'react-router-dom'
import { database } from '../fire.js'
import firebase from 'firebase'
import { useContextMenu, Menu, Item, Separator } from "react-contexify";
import "react-contexify/dist/ReactContexify.css";
import { useContextMenu, Menu, Item, Separator } from 'react-contexify'
import 'react-contexify/dist/ReactContexify.css'
import { BrowserRouter } from 'react-router-dom'
export default function Folder({ folder }) {
const MENU_ID = "#aadsd299dfsdwqwdasc29";
const history = useHistory();
const MENU_ID = '#aadsd299dfsdwqwdasc29'
const history = useHistory()
const [showit, setShowit] = useState(false);
const [showit1, setShowit1] = useState(false);
const [fname,setFname] = useState(folder.name);
const [fid,setFid] = useState(folder.id);
const [uploaddetail,setuploadDetail] = useState("");
const [name, setName] = useState(folder.name);
const [showit, setShowit] = useState(false)
const [showit1, setShowit1] = useState(false)
const [fname, setFname] = useState(folder.name)
const [fid, setFid] = useState(folder.id)
const [uploaddetail, setuploadDetail] = useState('')
const [name, setName] = useState(folder.name)
const { show } = useContextMenu({
id: MENU_ID,
});
})
function closeModal() {
setShowit(false);
setShowit1(false);
setShowit(false)
setShowit1(false)
}
function displayMenu(e) {
show(e, { props: { id: Number(e.currentTarget.id) , folderId : folder.id , folderName : folder.name, showit : showit , details : folder.createdAt} });
show(e, {
props: {
id: Number(e.currentTarget.id),
folderId: folder.id,
folderName: folder.name,
showit: showit,
details: folder.createdAt,
},
})
}
function handleItemClick({ event, props, data, triggerEvent }) {
switch (event.currentTarget.id) {
case "open":
history.push(`/folder/${props.folderId}`);
break;
case "rename":
setFid(props.folderId);
setShowit1(true);
setName(props.folderName);
break;
case "details":
setShowit(true);
setFname(props.folderName);
setuploadDetail(Date((props.details).toMillis()));
break;
case 'open':
history.push(`/folder/${props.folderId}`)
break
case 'rename':
setFid(props.folderId)
setShowit1(true)
setName(props.folderName)
break
case 'details':
setShowit(true)
setFname(props.folderName)
setuploadDetail(Date(props.details.toMillis()))
break
}
}
function handleSubmit(e) {
//Renaming the current folder in database
e.preventDefault();
const docRef = database.folders.doc(fid);
docRef.update({"name": name});
closeModal();
e.preventDefault()
const docRef = database.folders.doc(fid)
docRef.update({ name: name })
closeModal()
//Changing name of path in all child folders
var folderdel = database.folders
.where("userId","==", firebase.auth().currentUser.uid)
.where("parents", "array-contains", fid);
.where('userId', '==', firebase.auth().currentUser.uid)
.where('parents', 'array-contains', fid)
folderdel.get().then(function (querySnapshot) {
querySnapshot.forEach(function (doc) {
const child_folder_id = doc.id;
const child_folder_path = doc.data().path;
const child_folder_id = doc.id
const child_folder_path = doc.data().path
for (var key in child_folder_path) {
if (child_folder_path[key].id == fid) {
child_folder_path[key].name = name;
child_folder_path[key].name = name
}
}
const docRef1 = database.folders.doc(child_folder_id);
docRef1.update({"path": child_folder_path});
});
});
const docRef1 = database.folders.doc(child_folder_id)
docRef1.update({ path: child_folder_path })
})
})
}
return (
<Fragment>
<div>
<BrowserRouter>
<Button
onContextMenu={displayMenu}
id={folder.id}
to={`/folder/${folder.id}`}
variant="outline-secondary"
className="text-truncate w-100"
as={Link}>
<FontAwesomeIcon icon={faFolder} className="mr-2"/>
variant='outline-secondary'
className='text-truncate w-100'
as={Link}
>
<FontAwesomeIcon icon={faFolder} className='mr-2' />
{folder.name}
</Button>
</BrowserRouter>
{/* CONTEXT MENU FOR THE COMPONENT */}
<Menu id={MENU_ID}>
<Item id="open" onClick={handleItemClick} >
<Item id='open' onClick={handleItemClick}>
Open
</Item>
<Item id="rename" onClick={handleItemClick}>
<Item id='rename' onClick={handleItemClick}>
Rename
</Item>
<Item id="details" onClick={handleItemClick}>
<Item id='details' onClick={handleItemClick}>
Details
</Item>
</Menu>
{/* FOR SHOWING DETAILS OF THE FOLDER */}
<Modal show={showit} onHide={closeModal}>
<Modal.Body>
<h3>Folder details</h3>
<p>Folder : {fname}</p>
<p>Created On : {(""+uploaddetail).substring(0,34)+"(IST)"}</p>
<p>Created On : {('' + uploaddetail).substring(0, 34) + '(IST)'}</p>
</Modal.Body>
<Modal.Footer>
<Button variant="danger" onClick={closeModal}>
<Button variant='danger' onClick={closeModal}>
Close
</Button>
</Modal.Footer>
......@@ -130,26 +138,24 @@ export default function Folder ({folder}) {
<Form.Group>
<Form.Label>RENAME FOLDER</Form.Label>
<Form.Control
type="text"
type='text'
required
value={name}
onChange={e => setName(e.target.value)}
onChange={(e) => setName(e.target.value)}
/>
</Form.Group>
</Modal.Body>
<Modal.Footer>
<Button variant="success" type="submit">
<Button variant='success' type='submit'>
Rename
</Button>
<Button variant="danger" onClick={closeModal}>
<Button variant='danger' onClick={closeModal}>
Cancel
</Button>
</Modal.Footer>
</Form>
</Modal>
</div>
</Fragment>
);
)
}
......@@ -2,6 +2,7 @@ import { react,Fragment } from 'react'
import { Breadcrumb } from 'react-bootstrap'
import { Link } from 'react-router-dom'
import { ROOT_FOLDER } from '../hooks/useFolder'
import { BrowserRouter, Switch, Route } from 'react-router-dom'
export default function FolderNav({ currentFolder }) {
let path = currentFolder === ROOT_FOLDER ? [] : [ROOT_FOLDER]
......@@ -12,6 +13,7 @@ export default function FolderNav({ currentFolder }) {
return (
<Fragment>
<BrowserRouter>
<Breadcrumb
className='flex-grow-1'
listProps={{ className: 'bg-white pl-0 m-0' }}
......@@ -39,6 +41,7 @@ export default function FolderNav({ currentFolder }) {
</Breadcrumb.Item>
)}
</Breadcrumb>
</BrowserRouter>
</Fragment>
)
}
......@@ -2,6 +2,7 @@ import {React,useState,useEffect,Fragment } from 'react'
import { Link } from 'react-router-dom'
import fire from '../fire'
import firebase from 'firebase'
import { BrowserRouter } from 'react-router-dom'
export default function ForgotPassword() {
const [email, setEmail] = useState('')
......@@ -38,9 +39,11 @@ export default function ForgotPassword() {
<button onClick={handleforgot}>Reset Password</button>
<p>
Have an account ?{' '}
<BrowserRouter>
<Link to='/signin'>
<span>Sign in</span>
</Link>
</BrowserRouter>
</p>
</div>
</div>
......
......@@ -4,6 +4,8 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faLink, faPaste } from '@fortawesome/free-solid-svg-icons'
import { CopyToClipboard } from 'react-copy-to-clipboard'
import ReactTooltip from 'react-tooltip';
import firebase from 'firebase'
export default function Sharelink({ currentFolder }) {
const divStyle = {
......@@ -37,10 +39,10 @@ export default function Sharelink({ currentFolder }) {
<Form.Group>
<Form.Label>Sharable link for this folder :</Form.Label>
<Form.Label>
{'https://dcfstudentsview.netlify.app/folders/' + String(currentFolder.id)}
{'https://dcfstudentsview.netlify.app/folders/' +String(firebase.auth().currentUser.uid)+'/'+ String(currentFolder.id) }
<p></p>
<CopyToClipboard
text={'https://dcfstudentsview.netlify.app/folders/' + String(currentFolder.id)}
text={'https://dcfstudentsview.netlify.app/folders/' +String(firebase.auth().currentUser.uid)+'/'+ String(currentFolder.id)}
onCopy={() => setClipBoard(true)}
>
<FontAwesomeIcon icon={faPaste} />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment