Skip to content

Commit

Permalink
Tidy up settings page a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
marcus-crane committed Jun 2, 2022
1 parent 5030410 commit 3dcbe93
Show file tree
Hide file tree
Showing 16 changed files with 378 additions and 154 deletions.

Large diffs are not rendered by default.

234 changes: 234 additions & 0 deletions frontend/dist/assets/index.bc6cfc65.js

Large diffs are not rendered by default.

58 changes: 0 additions & 58 deletions frontend/dist/assets/index.ded8a96d.js

This file was deleted.

4 changes: 2 additions & 2 deletions frontend/dist/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
<meta charset="UTF-8" />
<meta content="width=device-width, initial-scale=1.0" name="viewport" />
<title>October</title>
<script type="module" crossorigin src="/assets/index.ded8a96d.js"></script>
<link rel="stylesheet" href="/assets/index.4a14fe4f.css">
<script type="module" crossorigin src="/assets/index.bc6cfc65.js"></script>
<link rel="stylesheet" href="/assets/index.0b1a9ab5.css">
</head>
<body class="max-h-screen bg-gray-100 dark:bg-gray-800">
<div id="root"></div>
Expand Down
58 changes: 47 additions & 11 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@
"@tailwindcss/forms": "^0.4.0",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-hot-toast": "^2.2.0",
"react-router-dom": "^6.3.0",
"react-toastify": "^9.0.1"
"react-toastify": "^9.0.3"
},
"scripts": {
"dev": "vite",
Expand Down
2 changes: 1 addition & 1 deletion frontend/package.json.md5
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1fdb8b94b07f5d08ac87bd007e82256d
007286ef2e29c47f3eccbab570b80a6e
2 changes: 2 additions & 0 deletions frontend/src/main.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import { createRoot } from 'react-dom/client'
import { Toaster } from 'react-hot-toast'

import 'react-toastify/dist/ReactToastify.css';
import './style.css';
Expand All @@ -9,6 +10,7 @@ import Router from './router';
const routes = (
<React.StrictMode>
<Router />
<Toaster />
</React.StrictMode>
)

Expand Down
83 changes: 45 additions & 38 deletions frontend/src/pages/Settings.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { useState, useEffect } from 'react';
import Navbar from "../components/Navbar";
import { toast } from "react-toastify";
import { toast } from "react-hot-toast";
import { BrowserOpenURL } from '../../wailsjs/runtime'
import { GetSettings } from "../../wailsjs/go/backend/Backend";
import {
SaveToken,
Expand Down Expand Up @@ -37,17 +38,19 @@ export default function Settings() {
toast.success("Your changes have been saved")
}

function checkReadwiseTokenValid() {
const toastId = toast.loading("Contacting the Readwise API...")
CheckTokenValidity()
.then(apiError => {
if (apiError === null) {
toast.update(toastId, { render: "Successfully authenticated against the Readwise API", type: "success", isLoading: false, autoClose: 2000 })
} else {
throw apiError
function checkTokenValid() {
toast.promise(
CheckTokenValidity(tokenInput),
{
loading: 'Contacting Readwise...',
success: () => "Your API token is valid!",
error: (err) => {
if (err === "401 Unauthorized") {
return "Readwise rejected your token"
}
})
.catch(err => toast.update(toastId, { render: err.message(), type: "error", isLoading: false, autoClose: 2000 }))
return err
}
})
}

return (
Expand All @@ -64,10 +67,22 @@ export default function Settings() {
<div className="px-4 py-5 sm:p-6">
<h3 className="text-lg leading-6 font-medium text-gray-900">Set your Readwise access token</h3>
<div className="mt-2 max-w-xl text-sm text-gray-500">
<p>You can find your access token at https://readwise.io/access_token</p>
<p>You can find your access token at{" "}
<button
className="text-gray-600 underline"
onClick={() =>
BrowserOpenURL("https://readwise.io/access_token")
}
>
https://readwise.io/access_token
</button>
</p>
</div>
<form onSubmit={(e) => e.preventDefault()} className="mt-5 sm:flex sm:items-center">
<div className="w-full sm:max-w-xs">
<form
onSubmit={(e) => e.preventDefault()}
className="sm:flex flex-col"
>
<div className="w-full mt-4 sm:flex sm:items-center">
<input
onChange={(e) => setTokenInput(e.target.value)}
type="text"
Expand All @@ -78,30 +93,22 @@ export default function Settings() {
value={tokenInput}
/>
</div>
<button
onClick={saveToken}
type="submit"
className="mt-3 w-full inline-flex items-center justify-center px-4 py-2 border border-transparent shadow-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm"
>
Save
</button>
</form>
</div>
</div>
<div className="bg-white shadow sm:rounded-lg">
<div className="px-4 py-5 sm:p-6">
<h3 className="text-lg leading-6 font-medium text-gray-900">Validate your Readwise token</h3>
<div className="mt-2 max-w-xl text-sm text-gray-500">
<p>Make a call to the Readwise API to check that your token is valid and correctly entered</p>
</div>
<form onSubmit={(e) => e.preventDefault()} className="mt-5 sm:flex sm:items-center">
<button
onClick={checkReadwiseTokenValid}
type="submit"
className="mt-3 w-full inline-flex items-center justify-center px-4 py-2 border border-transparent shadow-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:text-sm"
>
Validate Readwise token
</button>
<div className="w-full mt-4 sm:flex flex-row">
<button
onClick={checkTokenValid}
type="submit"
className="mt-3 w-full inline-flex items-center justify-center px-4 py-2 border border-transparent shadow-sm font-medium rounded-md text-white bg-green-600 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500 sm:mt-0 sm:text-sm"
>
Validate
</button>
<button
onClick={saveToken}
type="submit"
className="mt-3 w-full inline-flex items-center justify-center px-4 py-2 border border-transparent shadow-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:text-sm"
>
Save
</button>
</div>
</form>
</div>
</div>
Expand Down
16 changes: 8 additions & 8 deletions frontend/wailsjs/go/backend/Backend.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
// This file is automatically generated. DO NOT EDIT
import {backend} from '../models';

export function GetBookmark():Promise<backend.Bookmark>;

export function GetContent():Promise<backend.Content>;

export function GetSelectedKobo():Promise<backend.Kobo>;

export function GetSettings():Promise<backend.Settings>;

export function PromptForLocalDBPath():Promise<Error>;

export function SelectKobo(arg1:string):Promise<Error>;

export function DetectKobos():Promise<Array<backend.Kobo>>;

export function ForwardToReadwise():Promise<number|Error>;

export function GetBookmark():Promise<backend.Bookmark>;

export function GetContent():Promise<backend.Content>;

export function GetSelectedKobo():Promise<backend.Kobo>;

export function GetSettings():Promise<backend.Settings>;
32 changes: 16 additions & 16 deletions frontend/wailsjs/go/backend/Backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,6 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

export function GetBookmark() {
return window['go']['backend']['Backend']['GetBookmark']();
}

export function GetContent() {
return window['go']['backend']['Backend']['GetContent']();
}

export function GetSelectedKobo() {
return window['go']['backend']['Backend']['GetSelectedKobo']();
}

export function GetSettings() {
return window['go']['backend']['Backend']['GetSettings']();
}

export function PromptForLocalDBPath() {
return window['go']['backend']['Backend']['PromptForLocalDBPath']();
}
Expand All @@ -33,3 +17,19 @@ export function DetectKobos() {
export function ForwardToReadwise() {
return window['go']['backend']['Backend']['ForwardToReadwise']();
}

export function GetBookmark() {
return window['go']['backend']['Backend']['GetBookmark']();
}

export function GetContent() {
return window['go']['backend']['Backend']['GetContent']();
}

export function GetSelectedKobo() {
return window['go']['backend']['Backend']['GetSelectedKobo']();
}

export function GetSettings() {
return window['go']['backend']['Backend']['GetSettings']();
}
8 changes: 4 additions & 4 deletions frontend/wailsjs/go/backend/Kobo.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@
import {backend} from '../models';
import {map[string]backend} from '../models';

export function ListBookmarksByID(arg1:string):Promise<Array<backend.Bookmark>|Error>;

export function ListBooksOnDevice():Promise<Array<backend.Content>|Error>;

export function ListDeviceBookmarks():Promise<Array<backend.Bookmark>|Error>;

export function ListDeviceContent():Promise<Array<backend.Content>|Error>;
Expand All @@ -16,3 +12,7 @@ export function BuildContentIndex(arg1:Array<backend.Content>):Promise<map[strin
export function CountDeviceBookmarks():Promise<number>;

export function FindBookOnDevice(arg1:string):Promise<backend.Content|Error>;

export function ListBookmarksByID(arg1:string):Promise<Array<backend.Bookmark>|Error>;

export function ListBooksOnDevice():Promise<Array<backend.Content>|Error>;
16 changes: 8 additions & 8 deletions frontend/wailsjs/go/backend/Kobo.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,6 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

export function ListBookmarksByID(arg1) {
return window['go']['backend']['Kobo']['ListBookmarksByID'](arg1);
}

export function ListBooksOnDevice() {
return window['go']['backend']['Kobo']['ListBooksOnDevice']();
}

export function ListDeviceBookmarks() {
return window['go']['backend']['Kobo']['ListDeviceBookmarks']();
}
Expand All @@ -29,3 +21,11 @@ export function CountDeviceBookmarks() {
export function FindBookOnDevice(arg1) {
return window['go']['backend']['Kobo']['FindBookOnDevice'](arg1);
}

export function ListBookmarksByID(arg1) {
return window['go']['backend']['Kobo']['ListBookmarksByID'](arg1);
}

export function ListBooksOnDevice() {
return window['go']['backend']['Kobo']['ListBooksOnDevice']();
}
Loading

0 comments on commit 3dcbe93

Please sign in to comment.