From 6cfcf15ffc5873a25e42181a1c37305f4ea62186 Mon Sep 17 00:00:00 2001 From: Marten Veldthuis <marten@veldthuis.com> Date: Thu, 4 Jun 2020 12:36:29 +0200 Subject: [PATCH] Add setup page --- package.json | 1 + src/App.tsx | 22 ++++++++++------ src/gitlab.ts | 9 +++++++ yarn.lock | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 96 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 43d8b7b..d864e1a 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@gitbeaker/browser": "^19.7.1", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", diff --git a/src/App.tsx b/src/App.tsx index 7e9bb29..ff89260 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,7 +3,7 @@ import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom"; import { Button } from "antd"; import logo from "./logo.svg"; import "./App.css"; -import { getToken, setToken } from "./gitlab"; +import * as gitlab from "./gitlab"; function App() { return ( @@ -18,7 +18,7 @@ function App() { <Link to="/Setup">Setup</Link> </li> <li> - <Link to="/users">Users</Link> + <Link to="/issues">Issues</Link> </li> </ul> </nav> @@ -29,8 +29,8 @@ function App() { <Route path="/setup"> <Setup /> </Route> - <Route path="/users"> - <Users /> + <Route path="/issues"> + <GitlabIssues /> </Route> <Route path="/"> <Home /> @@ -50,19 +50,25 @@ function Home() { } const Setup: React.FunctionComponent = () => { + const [token, setToken] = React.useState(() => gitlab.getToken()); + const updateToken = (token: string) => { + setToken(token); + gitlab.setToken(token); + }; + return ( <div> <h2>Setup</h2> <input - value={getToken() || ""} - onChange={(e) => setToken(e.target.value)} + value={token || ""} + onChange={(e) => updateToken(e.target.value)} /> </div> ); }; -function Users() { - return <h2>Users</h2>; +function GitlabIssues() { + return <h2>Issues</h2>; } export default App; diff --git a/src/gitlab.ts b/src/gitlab.ts index 830b99b..884c55d 100644 --- a/src/gitlab.ts +++ b/src/gitlab.ts @@ -1,9 +1,18 @@ +import { Gitlab } from "@gitbeaker/browser"; // All Resources + const GITLAB_TOKEN_LOCATION = "GITLAB_TOKEN"; +export let client = getClient(); + +function getClient() { + return new Gitlab({ host: "https://gitlab.roqua.nl", token: getToken() }); +} + export function getToken() { return localStorage.getItem(GITLAB_TOKEN_LOCATION); } export function setToken(token: string) { localStorage.setItem(GITLAB_TOKEN_LOCATION, token); + client = getClient(); } diff --git a/yarn.lock b/yarn.lock index 13be806..5759f80 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1135,6 +1135,34 @@ resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== +"@gitbeaker/browser@^19.7.1": + version "19.7.1" + resolved "https://registry.yarnpkg.com/@gitbeaker/browser/-/browser-19.7.1.tgz#62d0a2de51ac11f26f69b7591e87df0b32091c10" + integrity sha512-uNkM+SSF5u+a3RAO+zxvqstPPNKycpLD7VjzKmMx4kCJhDvUt9xFVTqqVL6IpNWDpq5/gjyVLBVvQhRyouKwBA== + dependencies: + "@gitbeaker/core" "^19.7.1" + "@gitbeaker/requester-utils" "^19.7.1" + ky "^0.20.0" + +"@gitbeaker/core@^19.7.1": + version "19.7.1" + resolved "https://registry.yarnpkg.com/@gitbeaker/core/-/core-19.7.1.tgz#e6b0ac7c5d4d10795581e803809bae8f3de0cc02" + integrity sha512-laqA+LW5IjU5RwNfemjF6ha3QuIapUu1WtZstZ+pa0cYPxxD/iVyFtqNOk2vr9Q0vPDD6V2xv9SxAG9hqp6rPA== + dependencies: + "@gitbeaker/requester-utils" "^19.7.1" + form-data "^3.0.0" + li "^1.3.0" + xcase "^2.0.1" + +"@gitbeaker/requester-utils@^19.7.1": + version "19.7.1" + resolved "https://registry.yarnpkg.com/@gitbeaker/requester-utils/-/requester-utils-19.7.1.tgz#20f7969c5d6eac5631de75b384b25d51553419cd" + integrity sha512-bntF3UDqEStGB0v5Mo9P4kN57QKrwCBoBK0yi7kkYsaTSS66I9C+shKLp3Se8l7HSIX1bXlnOw+9Ujf5HVJ0lA== + dependencies: + form-data "^3.0.0" + query-string "^6.12.1" + xcase "^2.0.1" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -3121,7 +3149,7 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -4762,6 +4790,15 @@ fork-ts-checker-webpack-plugin@3.1.1: tapable "^1.0.0" worker-rpc "^0.1.0" +form-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" + integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -6520,6 +6557,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +ky@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/ky/-/ky-0.20.0.tgz#4cebcd208f2d0d0b5970a63523afecfd79bd9e46" + integrity sha512-JAfwtwj+t7WqRus88PfBj25aAjRQUgMhk7aB2ufjQ6v8faoNwMy02mfSQ0iNXWCbJGcSl2JZ5ckaiywRjbq0Uw== + last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" @@ -6570,6 +6612,11 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +li@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" + integrity sha1-IsWbyu+qmo7zWc91l4TkvxBq6hs= + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -8698,6 +8745,15 @@ query-string@^4.1.0: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +query-string@^6.12.1: + version "6.12.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.12.1.tgz#2ae4d272db4fba267141665374e49a1de09e8a7c" + integrity sha512-OHj+zzfRMyj3rmo/6G8a5Ifvw3AleL/EbcHMD27YA31Q+cO5lfmQxECkImuNVjcskLcvBRVHNAB3w6udMs1eAA== + dependencies: + decode-uri-component "^0.2.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -10105,6 +10161,11 @@ spdy@^4.0.1: select-hose "^2.0.0" spdy-transport "^3.0.0" +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -10212,6 +10273,11 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + string-convert@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" @@ -11382,6 +11448,11 @@ ws@^6.1.2, ws@^6.2.1: dependencies: async-limiter "~1.0.0" +xcase@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/xcase/-/xcase-2.0.1.tgz#c7fa72caa0f440db78fd5673432038ac984450b9" + integrity sha1-x/pyyqD0QNt4/VZzQyA4rJhEULk= + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" -- GitLab