Compare commits
19 Commits
v0.3.0
...
v0.4.0-dev
Author | SHA1 | Date |
---|---|---|
semantic-release-bot | 78c8a7864f | |
Derrick Hammer | 6074923086 | |
Derrick Hammer | a3ba768885 | |
Derrick Hammer | 13c51dd7d0 | |
Derrick Hammer | 265bbe3b91 | |
Derrick Hammer | 0303eeaf15 | |
Derrick Hammer | b5ccda8425 | |
Derrick Hammer | b37e680d1c | |
Derrick Hammer | 7295325295 | |
Derrick Hammer | f09c19c3e6 | |
Derrick Hammer | 6aa2b9a5b0 | |
Derrick Hammer | ffbe7a7df1 | |
Derrick Hammer | 7902f6a0bc | |
Derrick Hammer | 9ea94740e3 | |
Derrick Hammer | 98ce451c74 | |
Derrick Hammer | 6611372d73 | |
Derrick Hammer | 8bcb0e1ea4 | |
Derrick Hammer | 3cd7406d20 | |
Derrick Hammer | df1895f824 |
|
@ -0,0 +1,67 @@
|
||||||
|
name: Build/Publish
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- develop-*
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Use Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 18.x
|
||||||
|
cache: 'npm'
|
||||||
|
- run: npm ci
|
||||||
|
- run: npm run build --if-present
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: "--max_old_space_size=4096"
|
||||||
|
- name: Install SSH key
|
||||||
|
uses: shimataro/ssh-key-action@v2
|
||||||
|
with:
|
||||||
|
key: ${{ secrets.GITEA_SSH_KEY }}
|
||||||
|
known_hosts: ${{ secrets.GITEA_KNOWN_HOST }}
|
||||||
|
|
||||||
|
- name: Download YQ
|
||||||
|
run: |
|
||||||
|
sudo wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 -O /usr/bin/yq;
|
||||||
|
sudo chmod +x /usr/bin/yq
|
||||||
|
- name: Set up S3CMD
|
||||||
|
uses: s3-actions/s3cmd@v1.5.0
|
||||||
|
with:
|
||||||
|
provider: cloudflare
|
||||||
|
account_id: ${{ secrets.CF_ACCOUNT_ID }}
|
||||||
|
access_key: ${{ secrets.S3_ACCESS_KEY }}
|
||||||
|
secret_key: ${{ secrets.S3_SECRET_KEY }}
|
||||||
|
|
||||||
|
- name: Publish
|
||||||
|
run: npm run semantic-release
|
||||||
|
env:
|
||||||
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
|
|
||||||
|
- name: Publish to S3
|
||||||
|
run: |
|
||||||
|
s3cmd put "${{ env.PKG }}" s3://${{ vars.S3_BUCKET }}/$(basename "${{ env.PKG }}")
|
||||||
|
|
||||||
|
echo Release Zip: https://extension-release.lumeweb.com/$(basename "${{ env.PKG }}")
|
||||||
|
echo Release Zip SHA56: $(sha256sum "${{ env.PKG }}" | awk '{print $1}')
|
||||||
|
- name: Publish to Firefox
|
||||||
|
uses: yayuyokitano/firefox-addon@v0.0.6-alpha
|
||||||
|
if: ${{ github.ref_name == 'master' }}
|
||||||
|
with:
|
||||||
|
api_key: ${{ secrets.AMO_ISSUER }}
|
||||||
|
api_secret: ${{ secrets.AMO_SECRET }}
|
||||||
|
guid: ${{ env.EXTENSION_GUID }}
|
||||||
|
xpi_path: ${{ env.PKG }}
|
||||||
|
src_path: ${{ env.PKG_SRC }}
|
||||||
|
- name: Setup tmate session
|
||||||
|
uses: mxschmitt/action-tmate@v3
|
||||||
|
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled && failure() }}
|
||||||
|
with:
|
||||||
|
limit-access-to-actor: true
|
|
@ -0,0 +1,80 @@
|
||||||
|
{
|
||||||
|
"plugins": [
|
||||||
|
[
|
||||||
|
"@semantic-release/commit-analyzer",
|
||||||
|
{
|
||||||
|
"releaseRules": [
|
||||||
|
{
|
||||||
|
"breaking": true,
|
||||||
|
"release": "major"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"revert": true,
|
||||||
|
"release": "patch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "feat",
|
||||||
|
"release": "minor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "fix",
|
||||||
|
"release": "patch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "perf",
|
||||||
|
"release": "patch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "dep",
|
||||||
|
"release": "patch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "refactor",
|
||||||
|
"release": "patch"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"@semantic-release/release-notes-generator",
|
||||||
|
[
|
||||||
|
"@semantic-release/changelog",
|
||||||
|
{
|
||||||
|
"changelogFile": "CHANGELOG.md"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"@semantic-release/npm",
|
||||||
|
{
|
||||||
|
"npmPublish": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"@semantic-release/exec",
|
||||||
|
{
|
||||||
|
"prepareCmd": "./prepare.sh ${nextRelease.version}"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"@semantic-release/git",
|
||||||
|
{
|
||||||
|
"assets": [
|
||||||
|
"package.json",
|
||||||
|
"CHANGELOG.md",
|
||||||
|
"npm-shrinkwrap.json",
|
||||||
|
"assets/manifest.json"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"branches": [
|
||||||
|
"master",
|
||||||
|
{
|
||||||
|
"name": "develop",
|
||||||
|
"prerelease": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "develop-*",
|
||||||
|
"prerelease": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
# [0.4.0-develop.1](https://git.lumeweb.com/LumeWeb/extension/compare/v0.3.0...v0.4.0-develop.1) (2023-08-07)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **ci:** change publish step to prepare ([a3ba768](https://git.lumeweb.com/LumeWeb/extension/commit/a3ba768885d0102cbd941fce78c089876734be49))
|
||||||
|
* **ci:** echo out url for release zip, and provide sha256 hash checksum. ([265bbe3](https://git.lumeweb.com/LumeWeb/extension/commit/265bbe3b9171b5711a58a89a70938dd0c709b3ea))
|
||||||
|
* **ci:** strip out filename ([13c51dd](https://git.lumeweb.com/LumeWeb/extension/commit/13c51dd7d024da830055b7671c371d1292b2c06a))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add new popup app to go to login, dashboard, and logout ([df1895f](https://git.lumeweb.com/LumeWeb/extension/commit/df1895f8243b515921210dd6248b4126a96564c6))
|
|
@ -1,68 +1,73 @@
|
||||||
{
|
{
|
||||||
"description": "Lume Web is your decentralized gateway into the web3 internet, the web owned and controlled by its users",
|
"description": "Lume Web is your decentralized gateway into the web3 internet, the web owned and controlled by its users",
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Lume Web",
|
"name": "Lume Web",
|
||||||
"version": "0.3.0.3",
|
"version": "0.4.0-develop.1",
|
||||||
"homepage_url": "https://lumeweb.com",
|
"homepage_url": "https://lumeweb.com",
|
||||||
"icons": {
|
"icons": {
|
||||||
"48": "icon.png",
|
"48": "icon.png",
|
||||||
"96": "icon@2x.png"
|
"96": "icon@2x.png"
|
||||||
|
},
|
||||||
|
"permissions": [
|
||||||
|
"proxy",
|
||||||
|
"webRequest",
|
||||||
|
"webRequestBlocking",
|
||||||
|
"webNavigation",
|
||||||
|
"menus",
|
||||||
|
"<all_urls>"
|
||||||
|
],
|
||||||
|
"background": {
|
||||||
|
"scripts": [
|
||||||
|
"background.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"content_scripts": [
|
||||||
|
{
|
||||||
|
"matches": [
|
||||||
|
"http://kernel.lume/"
|
||||||
|
],
|
||||||
|
"js": [
|
||||||
|
"bootloader.js"
|
||||||
|
],
|
||||||
|
"run_at": "document_end",
|
||||||
|
"all_frames": true
|
||||||
},
|
},
|
||||||
"permissions": [
|
{
|
||||||
"proxy",
|
"matches": [
|
||||||
"webRequest",
|
|
||||||
"webRequestBlocking",
|
|
||||||
"webNavigation",
|
|
||||||
"menus",
|
|
||||||
"<all_urls>"
|
"<all_urls>"
|
||||||
],
|
],
|
||||||
"background": {
|
"js": [
|
||||||
"scripts": [
|
"bridge.js"
|
||||||
"background.js"
|
],
|
||||||
]
|
"run_at": "document_end",
|
||||||
|
"all_frames": true
|
||||||
},
|
},
|
||||||
"content_scripts": [
|
{
|
||||||
{
|
"matches": [
|
||||||
"matches": [
|
"<all_urls>"
|
||||||
"http://kernel.lume/"
|
],
|
||||||
],
|
"js": [
|
||||||
"js": [
|
"cryptoLoader.js"
|
||||||
"bootloader.js"
|
],
|
||||||
],
|
"run_at": "document_start",
|
||||||
"run_at": "document_end",
|
"all_frames": true
|
||||||
"all_frames": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matches": [
|
|
||||||
"<all_urls>"
|
|
||||||
],
|
|
||||||
"js": [
|
|
||||||
"bridge.js"
|
|
||||||
],
|
|
||||||
"run_at": "document_end",
|
|
||||||
"all_frames": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matches": [
|
|
||||||
"<all_urls>"
|
|
||||||
],
|
|
||||||
"js": [
|
|
||||||
"cryptoLoader.js"
|
|
||||||
],
|
|
||||||
"run_at": "document_start",
|
|
||||||
"all_frames": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"web_accessible_resources": [
|
|
||||||
"icon@2x.png",
|
|
||||||
"*.html",
|
|
||||||
"assets/*"
|
|
||||||
],
|
|
||||||
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';",
|
|
||||||
"browser_specific_settings": {
|
|
||||||
"gecko": {
|
|
||||||
"id": "contact@lumeweb.com",
|
|
||||||
"strict_min_version": "91.1.0"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"web_accessible_resources": [
|
||||||
|
"icon@2x.png",
|
||||||
|
"*.html",
|
||||||
|
"assets/*"
|
||||||
|
],
|
||||||
|
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';",
|
||||||
|
"browser_specific_settings": {
|
||||||
|
"gecko": {
|
||||||
|
"id": "contact@lumeweb.com",
|
||||||
|
"strict_min_version": "91.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"browser_action": {
|
||||||
|
"default_icon": "icon.png",
|
||||||
|
"default_title": "Lume Web",
|
||||||
|
"default_popup": "popup.html"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
|
@ -1,11 +1,14 @@
|
||||||
{
|
{
|
||||||
"name": "@lumeweb/extension",
|
"name": "@lumeweb/extension",
|
||||||
"version": "0.3.0",
|
"version": "0.4.0-develop.1",
|
||||||
"description": "Lume Web is your decentralized gateway into the web3 internet, the web owned and controlled by its users",
|
"description": "Lume Web is your decentralized gateway into the web3 internet, the web owned and controlled by its users",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"readme": "ERROR: No README data found!",
|
"readme": "ERROR: No README data found!",
|
||||||
"_id": "@lumeweb/extension@0.3.0",
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "gitea@git.lumeweb.com:LumeWeb/extension.git"
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"prepare": "presetter bootstrap",
|
"prepare": "presetter bootstrap",
|
||||||
"build": "run build",
|
"build": "run build",
|
||||||
|
@ -13,6 +16,7 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@lumeweb/presetter-kernel-module-preset": "^0.1.0-develop.44",
|
"@lumeweb/presetter-kernel-module-preset": "^0.1.0-develop.44",
|
||||||
|
"@semantic-release/exec": "^6.0.3",
|
||||||
"@tsconfig/svelte": "^5.0.0",
|
"@tsconfig/svelte": "^5.0.0",
|
||||||
"@types/object-diff": "^0.0.2",
|
"@types/object-diff": "^0.0.2",
|
||||||
"@types/react": "^18.2.17",
|
"@types/react": "^18.2.17",
|
||||||
|
@ -26,13 +30,14 @@
|
||||||
"sass": "^1.63.6",
|
"sass": "^1.63.6",
|
||||||
"svelte-check": "^3.4.6",
|
"svelte-check": "^3.4.6",
|
||||||
"tailwindcss": "^3.3.3",
|
"tailwindcss": "^3.3.3",
|
||||||
"typescript": "^5.1.6"
|
"typescript": "^5.1.6",
|
||||||
|
"web-ext": "^7.6.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@helia/unixfs": "^1.4.0",
|
"@helia/unixfs": "^1.4.0",
|
||||||
"@lumeweb/kernel-dns-client": "^0.1.0-develop.4",
|
"@lumeweb/kernel-dns-client": "^0.1.0-develop.4",
|
||||||
"@lumeweb/kernel-eth-client": "^0.1.0-develop.13",
|
"@lumeweb/kernel-eth-client": "^0.1.0-develop.13",
|
||||||
"@lumeweb/kernel-handshake-client": "^0.1.0-develop.3",
|
"@lumeweb/kernel-handshake-client": "^0.1.0-develop.4",
|
||||||
"@lumeweb/kernel-ipfs-client": "0.1.0-develop.21",
|
"@lumeweb/kernel-ipfs-client": "0.1.0-develop.21",
|
||||||
"@lumeweb/kernel-network-registry-client": "^0.1.0-develop.5",
|
"@lumeweb/kernel-network-registry-client": "^0.1.0-develop.5",
|
||||||
"@lumeweb/kernel-peer-discovery-client": "0.0.2-develop.10",
|
"@lumeweb/kernel-peer-discovery-client": "0.0.2-develop.10",
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
export VERSION="$1"
|
||||||
|
export PKG="web-ext-artifacts/lume_web-${VERSION}.zip"
|
||||||
|
export PKG_SRC="web-ext-artifacts/lume_web-${VERSION}-src.zip"
|
||||||
|
yq -i '.version = strenv(VERSION)' assets/manifest.json
|
||||||
|
cp assets/manifest.json dist/
|
||||||
|
web-ext build -s dist
|
||||||
|
mkdir -p dist-src
|
||||||
|
cp -r assets shared src ui *.json .js dist-src/
|
||||||
|
zip -r "web-ext-artifacts/lume_web-${VERSION}-src.zip" dist-src/
|
||||||
|
|
||||||
|
echo "EXTENSION_VERSION=${VERSION}" >> $GITHUB_ENV
|
||||||
|
echo "PKG=${PKG}" >> $GITHUB_ENV
|
||||||
|
echo "PKG_SRC=${PKG_SRC}" >> $GITHUB_ENV
|
|
@ -85,7 +85,7 @@ export async function doInit() {
|
||||||
const resolvers = [
|
const resolvers = [
|
||||||
"zduRfyhiAu871qg14RUapxxsBS4gaFxnWXs1jxf3guk2vVAhSx6vJp1kxo", // CID
|
"zduRfyhiAu871qg14RUapxxsBS4gaFxnWXs1jxf3guk2vVAhSx6vJp1kxo", // CID
|
||||||
"zduPorYNSjbkTipeAtDcW8bfRw4qhEb6rbf6yrMdGcxTthkmNkHfJGyyi7", // ENS
|
"zduPorYNSjbkTipeAtDcW8bfRw4qhEb6rbf6yrMdGcxTthkmNkHfJGyyi7", // ENS
|
||||||
"zduKYXmsGfqDxsERGU2MQdKSjNvuaqe9a3KmYDEXHZWx1AfHPgam7TmCpF", // HNS
|
"zduKCaTxTn7yx2AcGL3VZeK6WnKKvZ3QhSCQSq7hgjWWqEcCpaiTnFaV51", // HNS
|
||||||
];
|
];
|
||||||
|
|
||||||
for (const resolver of resolvers) {
|
for (const resolver of resolvers) {
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Jaldi';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: swap;
|
||||||
|
src: url("../../fonts/Jaldi-Regular.woff2") format('woff2');
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: #1D1D1D;
|
||||||
|
min-width: 15em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.body {
|
||||||
|
background: #3B3B3B;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.button-container {
|
||||||
|
margin: auto;
|
||||||
|
//max-width: 13.7em;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-right: 1em;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
display: flex;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding-left: 1.6em;
|
||||||
|
padding-right: 1.6em;
|
||||||
|
padding-top: 0.8em;
|
||||||
|
padding-bottom: 0.8em;
|
||||||
|
margin: auto;
|
||||||
|
cursor: pointer;
|
||||||
|
border: none;
|
||||||
|
font-size: 1em;
|
||||||
|
color: #F2F2F2;
|
||||||
|
|
||||||
|
> svg, span {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboard-btn {
|
||||||
|
background: #1B1B1B;
|
||||||
|
box-shadow: 1px 0 5px 0 rgb(27, 27, 27, 0.75);
|
||||||
|
|
||||||
|
|
||||||
|
> svg {
|
||||||
|
margin-right: 1em;
|
||||||
|
height: 1.2em;
|
||||||
|
width: 1.2em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-btn {
|
||||||
|
background: #1B1B1B;
|
||||||
|
box-shadow: 1px 0 5px 0 rgb(27, 27, 27, 0.75);
|
||||||
|
border: none;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: #3B3B3B;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.connection-text {
|
||||||
|
font-family: Jaldi;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 0.875em;
|
||||||
|
line-height: 2.1em;
|
||||||
|
color: #BFBFBF;
|
||||||
|
margin: auto;
|
||||||
|
padding-left: 2em;
|
||||||
|
padding-right: 2em;
|
||||||
|
padding-top: 1em;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.connection {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 7em;
|
||||||
|
margin: auto;
|
||||||
|
margin-top: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.header {
|
||||||
|
display: flex;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
min-width: 2.75em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
|
||||||
|
.icons {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo,
|
||||||
|
.exit,
|
||||||
|
.logout {
|
||||||
|
padding: 1em;
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
max-width: 1.2em;
|
||||||
|
max-height: 1.2em;
|
||||||
|
|
||||||
|
svg {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
fill: #8E8E93; // Set the fill color to gray for both icons
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.exit, .logout {
|
||||||
|
&:hover {
|
||||||
|
svg {
|
||||||
|
fill: #62C554;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
margin-right: auto;
|
||||||
|
|
||||||
|
&.connected {
|
||||||
|
svg {
|
||||||
|
fill: #62C554;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.exit {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,163 @@
|
||||||
|
import "./App.scss";
|
||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { init, loginComplete } from "@lumeweb/libkernel/kernel";
|
||||||
|
import browser from "webextension-polyfill";
|
||||||
|
import classNames from "classnames";
|
||||||
|
import { clearLoginKey } from "../../../shared/keys.js";
|
||||||
|
|
||||||
|
export default function App() {
|
||||||
|
const [loggedIn, setLoggedIn] = useState(false);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
init().then(() => {
|
||||||
|
loginComplete().then(() => {
|
||||||
|
setLoggedIn(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}, [loggedIn]);
|
||||||
|
|
||||||
|
function openDashboard() {
|
||||||
|
browser.tabs.create({
|
||||||
|
url: browser.runtime.getURL("dashboard.html"),
|
||||||
|
active: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function openAccount() {
|
||||||
|
browser.tabs.create({
|
||||||
|
url: browser.runtime.getURL("account.html"),
|
||||||
|
active: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function close() {
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function logout() {
|
||||||
|
await clearLoginKey();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<div className="header">
|
||||||
|
<div className={classNames("logo", { connected: loggedIn })}>
|
||||||
|
<svg
|
||||||
|
viewBox="0 0 339.18999 339.19"
|
||||||
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g transform="translate(-425.68,-251.35)">
|
||||||
|
<g>
|
||||||
|
<path d="m 697.89,382.61 c -0.96,-3.95 -3.58,-7.25 -7.1,-9.09 -1.93,-1.01 -4.13,-1.59 -6.46,-1.59 H 653.6 c -20.14,-0.03 -30.35,-10.26 -30.35,-30.42 0,-0.02 0,-0.04 0,-0.06 v 0 -76.11 c 0,-0.55 -0.04,-1.09 -0.1,-1.62 -0.01,-0.13 -0.04,-0.25 -0.06,-0.37 -0.06,-0.41 -0.13,-0.82 -0.23,-1.22 -0.03,-0.12 -0.06,-0.24 -0.09,-0.36 -0.11,-0.42 -0.24,-0.84 -0.39,-1.25 -0.03,-0.08 -0.05,-0.15 -0.08,-0.23 -0.19,-0.48 -0.4,-0.96 -0.64,-1.41 -0.01,-0.03 -0.04,-0.05 -0.05,-0.08 -0.28,-0.52 -0.58,-1.03 -0.92,-1.51 -0.01,-0.01 -0.02,-0.02 -0.03,-0.04 -0.34,-0.47 -0.7,-0.92 -1.09,-1.34 -0.04,-0.05 -0.08,-0.09 -0.13,-0.14 -0.81,-0.86 -1.72,-1.61 -2.71,-2.24 -0.09,-0.06 -0.19,-0.11 -0.28,-0.17 -0.43,-0.26 -0.88,-0.5 -1.34,-0.71 -0.08,-0.04 -0.15,-0.08 -0.23,-0.11 -0.53,-0.23 -1.07,-0.43 -1.63,-0.6 -0.11,-0.03 -0.22,-0.06 -0.33,-0.09 -0.45,-0.12 -0.92,-0.22 -1.39,-0.3 -0.16,-0.03 -0.31,-0.05 -0.47,-0.07 -0.58,-0.07 -1.18,-0.13 -1.78,-0.13 0,0 0,0 0,0 v 0 c -0.73,0 -1.43,0.07 -2.13,0.18 -0.12,0.02 -0.25,0.03 -0.37,0.06 -0.67,0.12 -1.32,0.29 -1.96,0.5 -0.1,0.03 -0.2,0.07 -0.3,0.11 -1.33,0.48 -2.56,1.15 -3.67,1.99 -0.05,0.04 -0.1,0.08 -0.16,0.12 -0.56,0.43 -1.08,0.91 -1.57,1.42 -0.02,0.02 -0.04,0.04 -0.06,0.07 -1,1.07 -1.84,2.3 -2.46,3.65 0,0 0,0.01 0,0.01 -0.3,0.64 -0.54,1.31 -0.74,2 -0.01,0.04 -0.04,0.09 -0.05,0.13 -0.15,0.55 -0.27,1.12 -0.36,1.7 -0.01,0.08 -0.03,0.16 -0.04,0.24 -0.08,0.6 -0.13,1.2 -0.13,1.82 v 76.17 c 0,0.02 0,0.04 0,0.07 0.02,28.2 15.37,58.31 58.36,58.33 0.01,0 0.02,0 0.03,0 0.01,0 0.02,0 0.03,0 h 30.63 c 3.86,0 7.36,-1.57 9.89,-4.1 2.53,-2.53 4.1,-6.03 4.1,-9.89 v -0.02 c -0.01,-1.15 -0.17,-2.24 -0.43,-3.3 z" />
|
||||||
|
<path d="m 556.94,318.33 c -3.95,0.96 -7.25,3.58 -9.09,7.1 -1.01,1.93 -1.59,4.13 -1.59,6.46 v 30.73 c -0.03,20.14 -10.26,30.35 -30.42,30.35 -0.02,0 -0.04,0 -0.06,0 v 0 h -76.11 c -0.55,0 -1.09,0.04 -1.62,0.1 -0.13,0.01 -0.25,0.04 -0.37,0.06 -0.41,0.06 -0.82,0.13 -1.22,0.23 -0.12,0.03 -0.24,0.06 -0.36,0.09 -0.42,0.11 -0.84,0.24 -1.25,0.39 -0.08,0.03 -0.15,0.05 -0.23,0.08 -0.48,0.19 -0.96,0.4 -1.41,0.64 -0.03,0.01 -0.05,0.04 -0.08,0.05 -0.52,0.28 -1.03,0.58 -1.51,0.92 -0.01,0.01 -0.02,0.02 -0.04,0.03 -0.47,0.34 -0.92,0.7 -1.34,1.09 -0.05,0.04 -0.09,0.08 -0.14,0.13 -0.86,0.81 -1.61,1.72 -2.24,2.71 -0.06,0.09 -0.11,0.19 -0.17,0.28 -0.26,0.43 -0.5,0.88 -0.71,1.34 -0.04,0.08 -0.08,0.15 -0.11,0.23 -0.23,0.53 -0.43,1.07 -0.6,1.63 -0.03,0.11 -0.06,0.22 -0.09,0.33 -0.12,0.45 -0.22,0.92 -0.3,1.39 -0.03,0.16 -0.05,0.31 -0.07,0.47 -0.07,0.58 -0.13,1.18 -0.13,1.78 0,0 0,0 0,0 v 0 c 0,0.73 0.07,1.43 0.18,2.13 0.02,0.12 0.03,0.25 0.06,0.37 0.12,0.67 0.29,1.32 0.5,1.96 0.03,0.1 0.07,0.2 0.11,0.3 0.48,1.33 1.15,2.56 1.99,3.67 0.04,0.05 0.08,0.1 0.12,0.16 0.43,0.56 0.91,1.08 1.42,1.57 0.02,0.02 0.04,0.04 0.07,0.06 1.07,1 2.3,1.84 3.65,2.46 0,0 0.01,0 0.01,0 0.64,0.3 1.31,0.54 2,0.74 0.04,0.01 0.09,0.04 0.13,0.05 0.55,0.15 1.12,0.27 1.7,0.36 0.08,0.01 0.16,0.03 0.24,0.04 0.6,0.08 1.2,0.13 1.82,0.13 h 76.17 c 0.02,0 0.04,0 0.07,0 28.2,-0.02 58.31,-15.37 58.33,-58.36 0,-0.01 0,-0.02 0,-0.03 0,-0.01 0,-0.02 0,-0.03 v -30.63 c 0,-3.86 -1.57,-7.36 -4.1,-9.89 -2.53,-2.53 -6.03,-4.1 -9.89,-4.1 h -0.02 c -1.15,0.01 -2.24,0.17 -3.3,0.43 z" />
|
||||||
|
<path d="m 492.66,459.28 c 0.96,3.95 3.58,7.25 7.1,9.09 1.93,1.01 4.13,1.59 6.46,1.59 h 30.73 c 20.14,0.03 30.35,10.26 30.35,30.42 0,0.02 0,0.04 0,0.06 v 0 76.11 c 0,0.55 0.04,1.09 0.1,1.62 0.01,0.13 0.04,0.25 0.06,0.37 0.06,0.41 0.13,0.82 0.23,1.22 0.03,0.12 0.06,0.24 0.09,0.36 0.11,0.42 0.24,0.84 0.39,1.25 0.03,0.08 0.05,0.15 0.08,0.23 0.19,0.48 0.4,0.96 0.64,1.41 0.01,0.03 0.04,0.05 0.05,0.08 0.28,0.52 0.58,1.03 0.92,1.51 0.01,0.01 0.02,0.02 0.03,0.04 0.34,0.47 0.7,0.92 1.09,1.34 0.04,0.05 0.08,0.09 0.13,0.14 0.81,0.86 1.72,1.61 2.71,2.24 0.09,0.06 0.19,0.11 0.28,0.17 0.43,0.26 0.88,0.5 1.34,0.71 0.08,0.04 0.15,0.08 0.23,0.11 0.53,0.23 1.07,0.43 1.63,0.6 0.11,0.03 0.22,0.06 0.33,0.09 0.45,0.12 0.92,0.22 1.39,0.3 0.16,0.03 0.31,0.05 0.47,0.07 0.58,0.07 1.18,0.13 1.78,0.13 0,0 0,0 0,0 v 0 c 0.73,0 1.43,-0.07 2.13,-0.18 0.12,-0.02 0.25,-0.03 0.37,-0.06 0.67,-0.12 1.32,-0.29 1.96,-0.5 0.1,-0.03 0.2,-0.07 0.3,-0.11 1.33,-0.48 2.56,-1.15 3.67,-1.99 0.05,-0.04 0.1,-0.08 0.16,-0.12 0.56,-0.43 1.08,-0.91 1.57,-1.42 0.02,-0.02 0.04,-0.04 0.06,-0.07 1,-1.07 1.84,-2.3 2.46,-3.65 0,0 0,-0.01 0,-0.01 0.3,-0.64 0.54,-1.31 0.74,-2 0.01,-0.04 0.04,-0.09 0.05,-0.13 0.15,-0.55 0.27,-1.12 0.36,-1.7 0.01,-0.08 0.03,-0.16 0.04,-0.24 0.08,-0.6 0.13,-1.2 0.13,-1.82 v -76.17 c 0,-0.02 0,-0.04 0,-0.07 -0.02,-28.2 -15.37,-58.31 -58.36,-58.33 -0.01,0 -0.02,0 -0.03,0 -0.01,0 -0.02,0 -0.03,0 h -30.63 c -3.86,0 -7.36,1.57 -9.89,4.1 -2.53,2.53 -4.1,6.03 -4.1,9.89 v 0.02 c 0.01,1.15 0.17,2.24 0.43,3.3 z" />
|
||||||
|
<path d="m 633.61,523.56 c 3.95,-0.96 7.25,-3.58 9.09,-7.1 1.01,-1.93 1.59,-4.13 1.59,-6.46 v -30.73 c 0.03,-20.14 10.26,-30.35 30.42,-30.35 0.02,0 0.04,0 0.06,0 v 0 h 76.11 c 0.55,0 1.09,-0.04 1.62,-0.1 0.13,-0.01 0.25,-0.04 0.37,-0.06 0.41,-0.06 0.82,-0.13 1.22,-0.23 0.12,-0.03 0.24,-0.06 0.36,-0.09 0.42,-0.11 0.84,-0.24 1.25,-0.39 0.08,-0.03 0.15,-0.05 0.23,-0.08 0.48,-0.19 0.96,-0.4 1.41,-0.64 0.03,-0.01 0.05,-0.04 0.08,-0.05 0.52,-0.28 1.03,-0.58 1.51,-0.92 0.01,-0.01 0.02,-0.02 0.04,-0.03 0.47,-0.34 0.92,-0.7 1.34,-1.09 0.05,-0.04 0.09,-0.08 0.14,-0.13 0.86,-0.81 1.61,-1.72 2.24,-2.71 0.06,-0.09 0.11,-0.19 0.17,-0.28 0.26,-0.43 0.5,-0.88 0.71,-1.34 0.04,-0.08 0.08,-0.15 0.11,-0.23 0.23,-0.53 0.43,-1.07 0.6,-1.63 0.03,-0.11 0.06,-0.22 0.09,-0.33 0.12,-0.45 0.22,-0.92 0.3,-1.39 0.03,-0.16 0.05,-0.31 0.07,-0.47 0.07,-0.58 0.13,-1.18 0.13,-1.78 0,0 0,0 0,0 v 0 c 0,-0.73 -0.07,-1.43 -0.18,-2.13 -0.02,-0.12 -0.03,-0.25 -0.06,-0.37 -0.12,-0.67 -0.29,-1.32 -0.5,-1.96 -0.03,-0.1 -0.07,-0.2 -0.11,-0.3 -0.48,-1.33 -1.15,-2.56 -1.99,-3.67 -0.04,-0.05 -0.08,-0.1 -0.12,-0.16 -0.43,-0.56 -0.91,-1.08 -1.42,-1.57 -0.02,-0.02 -0.04,-0.04 -0.07,-0.06 -1.07,-1 -2.3,-1.84 -3.65,-2.46 0,0 -0.01,0 -0.01,0 -0.64,-0.3 -1.31,-0.54 -2,-0.74 -0.04,-0.01 -0.09,-0.04 -0.13,-0.05 -0.55,-0.15 -1.12,-0.27 -1.7,-0.36 -0.08,-0.01 -0.16,-0.03 -0.24,-0.04 -0.6,-0.08 -1.2,-0.13 -1.82,-0.13 H 674.7 c -0.02,0 -0.04,0 -0.07,0 -28.2,0.02 -58.31,15.37 -58.33,58.36 0,0.01 0,0.02 0,0.03 0,0.01 0,0.02 0,0.03 V 510 c 0,3.86 1.57,7.36 4.1,9.89 2.53,2.53 6.03,4.1 9.89,4.1 h 0.02 c 1.15,-0.01 2.24,-0.17 3.3,-0.43 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="icons">
|
||||||
|
{loggedIn && (
|
||||||
|
<div className="logout" onClick={logout}>
|
||||||
|
<svg
|
||||||
|
viewBox="0 0 16 16"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path
|
||||||
|
fillRule="evenodd"
|
||||||
|
clipRule="evenodd"
|
||||||
|
d="M6.31111 11.2L7.55556 12.4444L12 8L7.55556 3.55556L6.31111 4.8L8.62222 7.11111H0V8.88889H8.62222L6.31111 11.2ZM14.2222 0H1.77778C0.8 0 0 0.8 0 1.77778V5.33333H1.77778V1.77778H14.2222V14.2222H1.77778V10.6667H0V14.2222C0 15.2 0.8 16 1.77778 16H14.2222C15.2 16 16 15.2 16 14.2222V1.77778C16 0.8 15.2 0 14.2222 0Z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
<div className="exit" onClick={close}>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18">
|
||||||
|
<g>
|
||||||
|
<path d="M12.255 6.992a.75.75 0 1 0-1.023-1.097L9.037 7.94 6.992 5.745a.75.75 0 0 0-1.097 1.023L7.94 8.963l-2.195 2.045a.75.75 0 0 0 1.023 1.097l2.195-2.045 2.045 2.195a.75.75 0 0 0 1.097-1.023L10.06 9.037l2.195-2.045z" />
|
||||||
|
<path
|
||||||
|
fillRule="evenodd"
|
||||||
|
d="M.75 9a8.25 8.25 0 1 1 16.5 0A8.25 8.25 0 1 1 .75 9zM9 15.75a6.75 6.75 0 1 1 0-13.5 6.75 6.75 0 1 1 0 13.5z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="body">
|
||||||
|
<div className="connection">
|
||||||
|
<svg viewBox="0 0 113 113" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clipPath="url(#clip0_625_565)">
|
||||||
|
<path
|
||||||
|
d="M24.7188 63.5625H88.2812C101.912 63.5625 113 52.4744 113 38.8438C113 25.2131 101.912 14.125 88.2812 14.125H28.25C28.25 6.32094 21.9291 0 14.125 0C6.32094 0 0 6.32094 0 14.125C0 21.9291 6.32094 28.25 14.125 28.25C19.3371 28.25 23.843 25.3897 26.2937 21.1875H88.2812C98.0134 21.1875 105.938 29.1116 105.938 38.8438C105.938 48.5759 98.0134 56.5 88.2812 56.5H24.7188C11.0881 56.5 0 67.5881 0 81.2188C0 94.8494 11.0881 105.938 24.7188 105.938H86.7063C89.1499 110.14 93.6558 113 98.875 113C106.679 113 113 106.679 113 98.875C113 91.0709 106.679 84.75 98.875 84.75C91.0709 84.75 84.75 91.0709 84.75 98.875H24.7188C14.9866 98.875 7.0625 90.9509 7.0625 81.2188C7.0625 71.4866 14.9866 63.5625 24.7188 63.5625Z"
|
||||||
|
fill="url(#paint0_linear_625_565)"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<linearGradient
|
||||||
|
id="paint0_linear_625_565"
|
||||||
|
x1="56.5"
|
||||||
|
y1="0"
|
||||||
|
x2="56.5"
|
||||||
|
y2="113"
|
||||||
|
gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stopColor="#1F6E46" />
|
||||||
|
<stop offset="1" stopColor="#484848" stopOpacity="0" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath id="clip0_625_565">
|
||||||
|
<rect width="113" height="113" fill="white" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
<div className="connection-text">
|
||||||
|
{!loggedIn && <>Looks like you’re not connected.</>}
|
||||||
|
{loggedIn && <>Connected to Lume Web.</>}
|
||||||
|
</div>
|
||||||
|
<div className="button-container">
|
||||||
|
{loggedIn && (
|
||||||
|
<button className="dashboard-btn" onClick={openDashboard}>
|
||||||
|
<svg
|
||||||
|
width=""
|
||||||
|
height=""
|
||||||
|
viewBox=""
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clipPath="url(#clip0_625_287)">
|
||||||
|
<path
|
||||||
|
d="M0 8C0 9.58225 0.469192 11.129 1.34824 12.4446C2.22729 13.7602 3.47672 14.7855 4.93853 15.391C6.40034 15.9965 8.00887 16.155 9.56072 15.8463C11.1126 15.5376 12.538 14.7757 13.6569 13.6569C14.7757 12.538 15.5376 11.1126 15.8463 9.56072C16.155 8.00887 15.9965 6.40034 15.391 4.93853C14.7855 3.47672 13.7602 2.22729 12.4446 1.34824C11.129 0.469192 9.58225 0 8 0C5.87827 0 3.84344 0.842855 2.34315 2.34315C0.842855 3.84344 0 5.87827 0 8Z"
|
||||||
|
fill="#BFBFBF"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M11.4999 10.545V12.0225C11.4999 12.0824 11.4763 12.1399 11.4342 12.1825C11.392 12.2251 11.3348 12.2494 11.2749 12.25H4.4999C4.44 12.2494 4.38277 12.2251 4.34065 12.1825C4.29852 12.1399 4.2749 12.0824 4.2749 12.0225V10.545C4.2749 9.35251 5.8924 8.38501 7.8874 8.38501C9.8824 8.38501 11.4999 9.35251 11.4999 10.545Z"
|
||||||
|
stroke="#1E1F21"
|
||||||
|
strokeWidth="2"
|
||||||
|
strokeMiterlimit="10"
|
||||||
|
strokeLinecap="round"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M7.88747 6.84C8.77389 6.84 9.49247 6.14828 9.49247 5.295C9.49247 4.44172 8.77389 3.75 7.88747 3.75C7.00105 3.75 6.28247 4.44172 6.28247 5.295C6.28247 6.14828 7.00105 6.84 7.88747 6.84Z"
|
||||||
|
stroke="#1E1F21"
|
||||||
|
strokeWidth="2"
|
||||||
|
strokeMiterlimit="10"
|
||||||
|
strokeLinecap="round"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_625_287">
|
||||||
|
<rect width="16" height="16" fill="white" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
<span>Dashboard</span>
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
{!loggedIn && (
|
||||||
|
<button className="login-btn" onClick={openAccount}>
|
||||||
|
<span>Login</span>
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Lume Web</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="module" src="./popup.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,8 @@
|
||||||
|
import { createRoot } from "react-dom";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
import App from "./apps/popup/App.tsx";
|
||||||
|
|
||||||
|
const root = createRoot(document.getElementById("app"));
|
||||||
|
|
||||||
|
root.render(React.createElement(App));
|
|
@ -3,6 +3,7 @@ module.exports = {
|
||||||
"./onboarding.html",
|
"./onboarding.html",
|
||||||
"./account.html",
|
"./account.html",
|
||||||
"./dashboard.html",
|
"./dashboard.html",
|
||||||
|
"./popup.html",
|
||||||
"./src/**/*.{js,ts, tsx}",
|
"./src/**/*.{js,ts, tsx}",
|
||||||
],
|
],
|
||||||
mode: "jit",
|
mode: "jit",
|
||||||
|
|
|
@ -12,6 +12,7 @@ export default defineConfig({
|
||||||
onboarding: resolve(__dirname, "onboarding.html"),
|
onboarding: resolve(__dirname, "onboarding.html"),
|
||||||
account: resolve(__dirname, "account.html"),
|
account: resolve(__dirname, "account.html"),
|
||||||
dashboard: resolve(__dirname, "dashboard.html"),
|
dashboard: resolve(__dirname, "dashboard.html"),
|
||||||
|
popup: resolve(__dirname, "popup.html"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
minify: false,
|
minify: false,
|
||||||
|
|
Reference in New Issue