mirror of
https://github.com/FranP-code/Pomodoro-Timer-with-Clockify-integration.git
synced 2025-10-12 23:52:30 +00:00
Added the upload to clockify function
This commit is contained in:
23
src/App.js
23
src/App.js
@@ -26,6 +26,11 @@ function App() {
|
|||||||
|
|
||||||
const [signIn, setSignIn] = useState('')
|
const [signIn, setSignIn] = useState('')
|
||||||
|
|
||||||
|
const [apiKey, setApiKey] = useState('')
|
||||||
|
|
||||||
|
const [workspaceID, setWorspaceID] = useState(0)
|
||||||
|
const [projectID, setProjectID] = useState(0)
|
||||||
|
|
||||||
const auth = getAuth()
|
const auth = getAuth()
|
||||||
|
|
||||||
onAuthStateChanged(auth, (user) => {
|
onAuthStateChanged(auth, (user) => {
|
||||||
@@ -63,10 +68,28 @@ function App() {
|
|||||||
signIn={signIn}
|
signIn={signIn}
|
||||||
timerOn={timerOn}
|
timerOn={timerOn}
|
||||||
setTimerOn={setTimerOn}
|
setTimerOn={setTimerOn}
|
||||||
|
|
||||||
|
workspaceID={workspaceID}
|
||||||
|
setWorspaceID={setWorspaceID}
|
||||||
|
|
||||||
|
projectID={projectID}
|
||||||
|
setProjectID={setProjectID}
|
||||||
|
|
||||||
|
apiKey={apiKey}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ClockifyTasksDisplay
|
<ClockifyTasksDisplay
|
||||||
signIn={signIn}
|
signIn={signIn}
|
||||||
timerOn={timerOn}
|
timerOn={timerOn}
|
||||||
|
|
||||||
|
apiKey={apiKey}
|
||||||
|
setApiKey={setApiKey}
|
||||||
|
|
||||||
|
workspaceID={workspaceID}
|
||||||
|
setWorspaceID={setWorspaceID}
|
||||||
|
|
||||||
|
projectID={projectID}
|
||||||
|
setProjectID={setProjectID}
|
||||||
/>
|
/>
|
||||||
<GoDownArrow />
|
<GoDownArrow />
|
||||||
<AboutThis />
|
<AboutThis />
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
const auth = getAuth()
|
const auth = getAuth()
|
||||||
|
|
||||||
const [userUID, setUserUID] = useState('')
|
const [userUID, setUserUID] = useState('')
|
||||||
const [apiKey, setApiKey] = useState('')
|
|
||||||
|
|
||||||
const [workspaces, setWorkspaces] = useState([])
|
const [workspaces, setWorkspaces] = useState([])
|
||||||
const [workspacesReady, setWorkspacesReady] = useState(false)
|
const [workspacesReady, setWorkspacesReady] = useState(false)
|
||||||
@@ -18,9 +17,6 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
const [projects, setProjects] = useState([])
|
const [projects, setProjects] = useState([])
|
||||||
const [projectsDone, setProjectsDone] = useState(false)
|
const [projectsDone, setProjectsDone] = useState(false)
|
||||||
|
|
||||||
const [workspaceID, setWorspaceID] = useState(0)
|
|
||||||
const [projectID, setProjectID] = useState(0)
|
|
||||||
|
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
|
|
||||||
const getApiKey = async () => {
|
const getApiKey = async () => {
|
||||||
@@ -61,7 +57,7 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
const response = await fetch(`https://api.clockify.me/api/v1/workspaces/`, request)
|
const response = await fetch(`https://api.clockify.me/api/v1/workspaces/`, request)
|
||||||
const data = await response.json()
|
const data = await response.json()
|
||||||
|
|
||||||
setApiKey(apiClockify)
|
props.setApiKey(apiClockify)
|
||||||
|
|
||||||
return await data
|
return await data
|
||||||
|
|
||||||
@@ -74,7 +70,7 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
|
|
||||||
const getApiKeyReturn = key
|
const getApiKeyReturn = key
|
||||||
|
|
||||||
console.log(apiKey)
|
console.log(props.apiKey)
|
||||||
|
|
||||||
const data = await makeRequestWorkspaces(key)
|
const data = await makeRequestWorkspaces(key)
|
||||||
|
|
||||||
@@ -125,7 +121,7 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
const request = {
|
const request = {
|
||||||
method: "GET",
|
method: "GET",
|
||||||
headers: {
|
headers: {
|
||||||
'X-Api-Key': apiKey,
|
'X-Api-Key': props.apiKey,
|
||||||
"content-type": "application/json"
|
"content-type": "application/json"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -151,7 +147,7 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
setProjectsDone(true)
|
setProjectsDone(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
setWorspaceID(e)
|
props.setWorspaceID(e)
|
||||||
|
|
||||||
const data = await makeRequestProjects(e)
|
const data = await makeRequestProjects(e)
|
||||||
|
|
||||||
@@ -165,6 +161,11 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const selectProject = (e) => {
|
||||||
|
|
||||||
|
props.setProjectID(e)
|
||||||
|
}
|
||||||
|
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return (
|
return (
|
||||||
<div className="clockify-tasks-display loading-container">
|
<div className="clockify-tasks-display loading-container">
|
||||||
@@ -186,7 +187,8 @@ const ClockifyTasksDisplay = (props) => {
|
|||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
</select>
|
</select>
|
||||||
<select className={workspaceID !== 0 ? 'project-selector' : 'project-selector disabled'}>
|
<select onChange={(e) => {selectProject(e.target.value)}} className={props.workspaceID !== 0 ? 'project-selector' : 'project-selector disabled'}>
|
||||||
|
<option value="0">Select a Project</option>
|
||||||
{
|
{
|
||||||
projectsDone && projects !== undefined ?
|
projectsDone && projects !== undefined ?
|
||||||
projects.map( (project) => {
|
projects.map( (project) => {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import React, {useState} from 'react'
|
import React, {useState} from 'react'
|
||||||
|
|
||||||
|
import uploadToClockifyTimer from '../Clockify/uploadToClockifyTimer'
|
||||||
|
|
||||||
const MainPomodoroTimer = (props) => {
|
const MainPomodoroTimer = (props) => {
|
||||||
|
|
||||||
const [minutes, setMinutes] = useState(25)
|
const [minutes, setMinutes] = useState(25)
|
||||||
@@ -233,6 +235,8 @@ const MainPomodoroTimer = (props) => {
|
|||||||
|
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uploadToClockifyTimer( props.workspaceID, props.projectID, '2021-10-02T13:00:14Z', '2021-10-02T15:00:14Z', props.apiKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,15 @@ const MainPomodoro = (props) => {
|
|||||||
|
|
||||||
longRests={longRests}
|
longRests={longRests}
|
||||||
setLongRests={setLongRests}
|
setLongRests={setLongRests}
|
||||||
|
|
||||||
|
|
||||||
|
workspaceID={props.workspaceID}
|
||||||
|
setWorspaceID={props.setWorspaceID}
|
||||||
|
|
||||||
|
projectID={props.projectID}
|
||||||
|
setProjectID={props.setProjectID}
|
||||||
|
|
||||||
|
apiKey={props.apiKey}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user