small refinment

This commit is contained in:
arc-alex
2023-12-13 17:31:33 +01:00
parent d763f3f6b9
commit 0024b02638
4 changed files with 62 additions and 48 deletions
@@ -2,6 +2,8 @@ import { ChangeEvent, useEffect, useRef, useState } from 'react';
import {
Button,
Input,
InputGroup,
InputRightAddon,
Modal,
ModalBody,
ModalCloseButton,
@@ -193,53 +195,64 @@ export default function SheetsModal(props: SheetsModalProps) {
{sheetState.auth ? <div>You are authenticated</div> : <div>You are not authenticated</div>}
<div>
<label htmlFor='sheetid'>Sheet ID </label>
<Input
type='text'
ref={sheetid}
id='sheetid'
width='240px'
size='sm'
textAlign='right'
variant='ontime-filled-on-light'
/>
{sheetState.id ? <IoCheckmarkCircleOutline /> : <IoCloseCircleOutline />}
<InputGroup size='sm'>
<Input
type='text'
ref={sheetid}
id='sheetid'
width='240px'
textAlign='right'
variant='ontime-filled-on-light'
/>
<InputRightAddon>
{sheetState.id ? <IoCheckmarkCircleOutline color='green' /> : <IoCloseCircleOutline color='red' />}
</InputRightAddon>
</InputGroup>
<br />
<label htmlFor='worksheet'>Worksheet </label>
<Input
type='text'
ref={worksheet}
id='worksheet'
width='240px'
size='sm'
textAlign='right'
variant='ontime-filled-on-light'
/>
{sheetState.worksheet ? <IoCheckmarkCircleOutline /> : <IoCloseCircleOutline />}
<InputGroup size='sm'>
<Input
type='text'
ref={worksheet}
id='worksheet'
width='240px'
textAlign='right'
variant='ontime-filled-on-light'
/>
<InputRightAddon>
{sheetState.worksheet ? (
<IoCheckmarkCircleOutline color='green' />
) : (
<IoCloseCircleOutline color='red' />
)}
</InputRightAddon>
</InputGroup>
</div>
<br />
<div>
<Button
disabled={!sheetState.worksheet}
variant='ontime-subtle-on-light'
padding='0 2em'
onClick={handlePullData}
rightIcon={<IoArrowDownCircleOutline />}
>
Pull Rundown
</Button>
<Button
disabled={!sheetState.worksheet}
variant='ontime-subtle-on-light'
padding='0 2em'
onClick={handlePushData}
rightIcon={<IoArrowUpCircleOutline />}
>
Push Rundown
</Button>
</div>
</>
)}
</ModalBody>
<ModalFooter>
{!rundown && (
<div>
<Button
variant='ontime-subtle-on-light'
padding='0 2em'
onClick={handlePullData}
rightIcon={<IoArrowDownCircleOutline />}
>
Pull data
</Button>
<Button
variant='ontime-subtle-on-light'
padding='0 2em'
onClick={handlePushData}
rightIcon={<IoArrowUpCircleOutline />}
>
Push data
</Button>
</div>
)}
<Button variant='ontime-ghost-on-light'>Reset</Button>
{!rundown && (
<Button variant='ontime-filled' padding='0 2em' onClick={handelSave}>
@@ -508,13 +508,14 @@ export async function uploadGoogleSheetClientFile(req, res) {
/**
* @returns link to sheet auth url
* @method GET
*/
export async function sheetAuthUrl(req, res) {
const successful = await Sheet.openAuthServer();
if (successful === false) {
res.status(500).send('bad');
const authUrl = await Sheet.openAuthServer();
if (!authUrl) {
res.status(500).send('Unable to start auth server');
} else {
res.status(200).send(successful);
res.status(200).send(authUrl);
}
}
+3 -3
View File
@@ -261,7 +261,7 @@ class sheet {
* @returns {Promise<string | false>} - returns url to serve on success
* @throws
*/
public async openAuthServer(): Promise<string | false> {
public async openAuthServer(): Promise<string | null> {
//TODO: this only works on local networks
if (sheet.authUrl) {
clearTimeout(this.authServerTimeout);
@@ -278,13 +278,13 @@ class sheet {
logger.error(LogOrigin.Server, `${err}`),
);
if (!creadFile) {
return false;
return null;
}
const keyFile = JSON.parse(creadFile);
const keys = keyFile.installed || keyFile.web;
if (!keys.redirect_uris || keys.redirect_uris.length === 0) {
logger.error(LogOrigin.Server, `${invalidRedirectUri}`);
return false;
return null;
}
// create an oAuth client to authorize the API call
@@ -7,4 +7,4 @@ export type GoogleSheetState = {
auth: boolean;
id: boolean;
worksheet: boolean;
};
};