mirror of
https://github.com/RoboSats/robosats.git
synced 2025-01-18 12:11:35 +00:00
Android app config and fixes (#267)
* Android app confuration and fixes * Adding ignore files * Prettier * Asset load * Run prettier * Add upload Web.bundle directory as build artifact * CR Co-authored-by: Reckless_Satoshi <reckless.satoshi@protonmail.com>
This commit is contained in:
parent
0a100802f2
commit
0689377f2c
8
.github/workflows/android-build.yml
vendored
8
.github/workflows/android-build.yml
vendored
@ -20,14 +20,14 @@ jobs:
|
||||
- name: 'Checkout'
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: 'Download main.js Artifact'
|
||||
- name: 'Download Android Web.bundle Artifact (built frontend)'
|
||||
if: inputs.semver == '' # Only if workflow fired from frontend-build.yml
|
||||
uses: dawidd6/action-download-artifact@v2
|
||||
with:
|
||||
workflow: frontend-build.yml
|
||||
workflow_conclusion: success
|
||||
name: mobile-main-js
|
||||
path: mobile/html/Web.bundle/js/
|
||||
name: mobile-web.bundle
|
||||
path: mobile/html
|
||||
|
||||
- name: 'Download main.js Artifact for a release'
|
||||
if: inputs.semver != '' # Only if fired as job in release.yml
|
||||
@ -39,7 +39,7 @@ jobs:
|
||||
- name: 'Install npm Dependencies'
|
||||
run: |
|
||||
cd mobile
|
||||
npm install --force
|
||||
npm install
|
||||
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
|
8
.github/workflows/frontend-build.yml
vendored
8
.github/workflows/frontend-build.yml
vendored
@ -48,16 +48,16 @@ jobs:
|
||||
run: |
|
||||
cd frontend
|
||||
npm run build
|
||||
- name: 'Archive Web Built Results'
|
||||
- name: 'Archive Web Build Results'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: web-main-js
|
||||
path: frontend/static/frontend/main.js
|
||||
- name: 'Archive Mobile Built Results'
|
||||
- name: 'Archive Mobile Build Results'
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: mobile-main-js
|
||||
path: mobile/html/Web.bundle/js/main.js
|
||||
name: mobile-web.bundle
|
||||
path: mobile/html/Web.bundle
|
||||
|
||||
# Invoke pre-release image build if this was not a tag push
|
||||
# Docker images tagged only with short commit hash
|
||||
|
15192
frontend/package-lock.json
generated
15192
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -28,6 +28,7 @@
|
||||
"@typescript-eslint/eslint-plugin": "^5.35.1",
|
||||
"@typescript-eslint/parser": "^5.35.1",
|
||||
"babel-loader": "^8.2.5",
|
||||
"copy-webpack-plugin": "^11.0.0",
|
||||
"eslint": "^8.23.0",
|
||||
"eslint-config-prettier": "^8.5.0",
|
||||
"eslint-config-standard-with-typescript": "^22.0.0",
|
||||
|
@ -12,7 +12,10 @@ import translationFR from '../../static/locales/fr.json';
|
||||
import translationCA from '../../static/locales/ca.json';
|
||||
import translationIT from '../../static/locales/it.json';
|
||||
import translationPT from '../../static/locales/pt.json';
|
||||
import translationEU from '../../static/locales/th.json';
|
||||
import translationTH from '../../static/locales/th.json';
|
||||
import translationCS from '../../static/locales/cs.json';
|
||||
import translationEU from '../../static/locales/eu.json';
|
||||
import translationSV from '../../static/locales/sv.json';
|
||||
|
||||
const config = {
|
||||
resources: {
|
||||
@ -26,6 +29,10 @@ const config = {
|
||||
it: { translations: translationIT },
|
||||
pt: { translations: translationPT },
|
||||
eu: { translations: translationEU },
|
||||
cs: { translations: translationCS },
|
||||
th: { translations: translationTH },
|
||||
pl: { translations: translationPL },
|
||||
sv: { translations: translationSV },
|
||||
},
|
||||
fallbackLng: 'en',
|
||||
debug: false,
|
||||
|
@ -8,6 +8,7 @@ class ApiNativeClient implements ApiClient {
|
||||
}
|
||||
|
||||
private assetsCache: { [path: string]: string } = {};
|
||||
private assetsPromises: { [path: string]: Promise<string | undefined> } = {};
|
||||
|
||||
private readonly getHeaders: () => HeadersInit = () => {
|
||||
return { 'Content-Type': 'application/json', 'X-CSRFToken': getCookie('csrftoken') || '' };
|
||||
@ -51,17 +52,24 @@ class ApiNativeClient implements ApiClient {
|
||||
|
||||
if (this.assetsCache[path]) {
|
||||
return this.assetsCache[path];
|
||||
} else if (path in this.assetsPromises) {
|
||||
return this.assetsPromises[path];
|
||||
}
|
||||
|
||||
const fileB64 = await window.NativeRobosats?.postMessage({
|
||||
category: 'http',
|
||||
type: 'xhr',
|
||||
path,
|
||||
this.assetsPromises[path] = new Promise<string>(async (resolve, reject) => {
|
||||
const fileB64 = await window.NativeRobosats?.postMessage({
|
||||
category: 'http',
|
||||
type: 'xhr',
|
||||
path,
|
||||
}).catch(reject);
|
||||
|
||||
this.assetsCache[path] = `data:image/png;base64,${fileB64?.b64Data}`;
|
||||
delete this.assetsPromises[path];
|
||||
|
||||
resolve(this.assetsCache[path]);
|
||||
});
|
||||
|
||||
this.assetsCache[path] = `data:image/png;base64,${fileB64?.b64Data}`;
|
||||
|
||||
return this.assetsCache[path];
|
||||
return this.assetsPromises[path];
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
import path from 'path';
|
||||
import { Configuration } from 'webpack';
|
||||
import CopyPlugin from 'copy-webpack-plugin';
|
||||
|
||||
const config: Configuration = {
|
||||
entry: './src/index.js',
|
||||
@ -47,6 +48,16 @@ const configMobile: Configuration = {
|
||||
},
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
new CopyPlugin({
|
||||
patterns: [
|
||||
{
|
||||
from: path.resolve(__dirname, 'static/css'),
|
||||
to: path.resolve(__dirname, '../mobile/html/Web.bundle/css'),
|
||||
},
|
||||
],
|
||||
}),
|
||||
],
|
||||
output: {
|
||||
path: path.resolve(__dirname, '../mobile/html/Web.bundle/js'),
|
||||
filename: 'main.js',
|
||||
|
1
mobile/.gitignore
vendored
1
mobile/.gitignore
vendored
@ -64,3 +64,4 @@ buck-out/
|
||||
|
||||
# frontend js
|
||||
/html/Web.bundle/js*
|
||||
/html/Web.bundle/css*
|
||||
|
@ -48,6 +48,7 @@ const App = () => {
|
||||
onMessage={onMessage}
|
||||
// @ts-expect-error
|
||||
ref={(ref) => (webViewRef.current = ref)}
|
||||
overScrollMode='never'
|
||||
javaScriptEnabled={true}
|
||||
domStorageEnabled={true}
|
||||
sharedCookiesEnabled={true}
|
||||
|
@ -1,264 +0,0 @@
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-1.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-2.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-3.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-4.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-5.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||
U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-6.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||
U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-7.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-8.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-9.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-10.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-11.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-12.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||
U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-13.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||
U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-14.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-15.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-16.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-17.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-18.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-19.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||
U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-20.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||
U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-21.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
||||
/* cyrillic-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-22.woff2) format('woff2');
|
||||
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
||||
}
|
||||
/* cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-23.woff2) format('woff2');
|
||||
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
||||
}
|
||||
/* greek-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-24.woff2) format('woff2');
|
||||
unicode-range: U+1F00-1FFF;
|
||||
}
|
||||
/* greek */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-25.woff2) format('woff2');
|
||||
unicode-range: U+0370-03FF;
|
||||
}
|
||||
/* vietnamese */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-26.woff2) format('woff2');
|
||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||
U+1EA0-1EF9, U+20AB;
|
||||
}
|
||||
/* latin-ext */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-27.woff2) format('woff2');
|
||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||
U+2C60-2C7F, U+A720-A7FF;
|
||||
}
|
||||
/* latin */
|
||||
@font-face {
|
||||
font-family: 'Roboto';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(/static/css/fonts/roboto-28.woff2) format('woff2');
|
||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,180 +0,0 @@
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: 'Roboto';
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background: rgb(0, 0, 0);
|
||||
}
|
||||
.loaderSpinner {
|
||||
color: #90caf9;
|
||||
}
|
||||
.loaderSpinner:before {
|
||||
background: rgb(0, 0, 0);
|
||||
}
|
||||
.loaderSpinner:after {
|
||||
background: rgb(0, 0, 0);
|
||||
}
|
||||
.slider {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
#main {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#app {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
0% {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.appCenter {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%) translate(0, -20px);
|
||||
}
|
||||
|
||||
.alertUnsafe {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
z-index: 9999;
|
||||
}
|
||||
|
||||
.hideAlertButton {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
.clickTrough {
|
||||
height: 50px;
|
||||
pointer-events: none;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* No arrows on numeric inputs */
|
||||
input::-webkit-outer-spin-button,
|
||||
input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
margin: 0;
|
||||
}
|
||||
input[type='number'] {
|
||||
-moz-appearance: textfield;
|
||||
}
|
||||
|
||||
.bottomBar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.amboss {
|
||||
fill: url(#SVGID_1_);
|
||||
}
|
||||
|
||||
.advancedSwitch {
|
||||
width: 20;
|
||||
left: 50%;
|
||||
transform: translate(62px, 0px);
|
||||
margin-right: 0;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.bottomItem {
|
||||
margin: 0;
|
||||
top: -14px;
|
||||
}
|
||||
|
||||
.profileNickname {
|
||||
margin: 0;
|
||||
left: -16px;
|
||||
}
|
||||
|
||||
.newAvatar {
|
||||
border-radius: 50%;
|
||||
border: 2px solid #555;
|
||||
filter: drop-shadow(1px 1px 1px #000000);
|
||||
}
|
||||
|
||||
.profileAvatar {
|
||||
border: 0.5px solid #555;
|
||||
filter: drop-shadow(0.5px 0.5px 0.5px #000000);
|
||||
left: 35px;
|
||||
}
|
||||
|
||||
.smallAvatar {
|
||||
border: 0.5px solid #555;
|
||||
filter: drop-shadow(0.5px 0.5px 0.5px #000000);
|
||||
}
|
||||
|
||||
.flippedSmallAvatar {
|
||||
transform: scaleX(-1);
|
||||
border: 0.3px solid #555;
|
||||
filter: drop-shadow(0.5px 0.5px 0.5px #000000);
|
||||
}
|
||||
|
||||
.phoneFlippedSmallAvatar img {
|
||||
transform: scaleX(-1);
|
||||
border: 1.3px solid #1976d2;
|
||||
-webkit-filter: grayscale(100%);
|
||||
filter: grayscale(100%) brightness(150%) contrast(150%) drop-shadow(0.7px 0.7px 0.7px #000000);
|
||||
}
|
||||
|
||||
.phoneFlippedSmallAvatar:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
border-radius: 50%;
|
||||
border: 2.4px solid #1976d2;
|
||||
box-shadow: inset 0px 0px 35px rgb(255, 255, 255);
|
||||
}
|
||||
|
||||
.MuiButton-textInherit {
|
||||
color: '#111111';
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 6px; /* for vertical scrollbars */
|
||||
height: 6px; /* for horizontal scrollbars */
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.MuiDataGrid-columnHeaders + div {
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
@media (max-height: 725px) and (max-width: 925px) {
|
||||
.appCenter:has(> div.MuiGrid-root:first-child, > div.MuiBox-root:first-child) {
|
||||
overflow-y: auto;
|
||||
margin-top: 1em;
|
||||
padding-bottom: 3em;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
@ -1,329 +0,0 @@
|
||||
.loaderCenter {
|
||||
margin: 0 auto;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
margin-top: -120px;
|
||||
margin-left: -175px;
|
||||
width: 350px;
|
||||
height: 120px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.loaderSpinner,
|
||||
.loaderSpinner:before,
|
||||
.loaderSpinner:after {
|
||||
border-radius: 50%;
|
||||
}
|
||||
.loaderSpinner {
|
||||
color: #1976d2;
|
||||
font-size: 11px;
|
||||
text-indent: -99999em;
|
||||
margin: 55px auto;
|
||||
position: relative;
|
||||
width: 10em;
|
||||
height: 10em;
|
||||
box-shadow: inset 0 0 0 1em;
|
||||
-webkit-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
.loaderSpinner:before,
|
||||
.loaderSpinner:after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
}
|
||||
.loaderSpinner:before {
|
||||
width: 5.2em;
|
||||
height: 10.2em;
|
||||
background: #ffffff;
|
||||
border-radius: 9.2em 0 0 10.2em;
|
||||
top: -0.1em;
|
||||
left: -0.1em;
|
||||
-webkit-transform-origin: 5.1em 5.1em;
|
||||
transform-origin: 5.1em 5.1em;
|
||||
-webkit-animation: load2 2s infinite ease 1.5s;
|
||||
animation: load2 2s infinite ease 1.5s;
|
||||
}
|
||||
.loaderSpinner:after {
|
||||
width: 5.2em;
|
||||
height: 10.2em;
|
||||
background: #ffffff;
|
||||
border-radius: 0 10.2em 10.2em 0;
|
||||
top: -0.1em;
|
||||
left: 4.9em;
|
||||
-webkit-transform-origin: 0.1em 5.1em;
|
||||
transform-origin: 0.1em 5.1em;
|
||||
-webkit-animation: load2 2s infinite ease;
|
||||
animation: load2 2s infinite ease;
|
||||
}
|
||||
@-webkit-keyframes load2 {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@keyframes load2 {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.content-slider {
|
||||
width: 100%;
|
||||
height: 180px;
|
||||
}
|
||||
|
||||
.slider {
|
||||
height: 140px;
|
||||
width: 350px;
|
||||
margin: 40px auto 0;
|
||||
overflow: visible;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mask {
|
||||
overflow: hidden;
|
||||
height: 140px;
|
||||
}
|
||||
|
||||
.slider ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.slider li {
|
||||
text-align: center;
|
||||
width: 350px;
|
||||
height: 140px;
|
||||
position: absolute;
|
||||
top: -105px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.slider .quote {
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.slider li.anim1 {
|
||||
animation: cycle 12s linear infinite;
|
||||
}
|
||||
|
||||
.slider li.anim2 {
|
||||
animation: cycle2 12s linear infinite;
|
||||
}
|
||||
|
||||
.slider li.anim3 {
|
||||
animation: cycle3 12s linear infinite;
|
||||
}
|
||||
|
||||
.slider li.anim4 {
|
||||
animation: cycle4 12s linear infinite;
|
||||
}
|
||||
|
||||
.slider li.anim5 {
|
||||
animation: cycle5 12s linear infinite;
|
||||
}
|
||||
|
||||
.slider:hover li {
|
||||
animation-play-state: paused;
|
||||
}
|
||||
|
||||
@keyframes cycle {
|
||||
0% {
|
||||
top: 0px;
|
||||
}
|
||||
4% {
|
||||
top: 0px;
|
||||
}
|
||||
16% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
z-index: 0;
|
||||
}
|
||||
20% {
|
||||
top: 105px;
|
||||
opacity: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
21% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
50% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
92% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
96% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cycle2 {
|
||||
0% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
16% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
20% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
24% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
36% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
z-index: 0;
|
||||
}
|
||||
40% {
|
||||
top: 105px;
|
||||
opacity: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
41% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
100% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cycle3 {
|
||||
0% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
36% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
40% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
44% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
56% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
z-index: 0;
|
||||
}
|
||||
60% {
|
||||
top: 105px;
|
||||
opacity: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
61% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
100% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cycle4 {
|
||||
0% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
56% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
60% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
64% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
76% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
z-index: 0;
|
||||
}
|
||||
80% {
|
||||
top: 105px;
|
||||
opacity: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
81% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
100% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes cycle5 {
|
||||
0% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
76% {
|
||||
top: -105px;
|
||||
opacity: 0;
|
||||
}
|
||||
80% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
84% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
}
|
||||
96% {
|
||||
top: 0px;
|
||||
opacity: 1;
|
||||
z-index: 0;
|
||||
}
|
||||
100% {
|
||||
top: 105px;
|
||||
opacity: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
}
|
2619
mobile/package-lock.json
generated
2619
mobile/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "RoboSats",
|
||||
"name": "robosats",
|
||||
"version": "0.2.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@ -12,12 +12,12 @@
|
||||
"format": "prettier --write '**/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
|
||||
},
|
||||
"dependencies": {
|
||||
"react": "^18.2.0",
|
||||
"react-native": "^0.69.1",
|
||||
"react": "^18.0.0",
|
||||
"react-native": "^0.69.6",
|
||||
"react-native-tor": "^0.1.8",
|
||||
"react-native-v8": "^1.5.0",
|
||||
"react-native-webview": "^11.22.3",
|
||||
"v8-android-jit": "^10.100.1"
|
||||
"v8-android-nointl": "^10.100.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.12.9",
|
||||
|
@ -4,6 +4,8 @@ Tested on Ubuntu 20.04 and OSX 12.5.1
|
||||
|
||||
## Install JDK
|
||||
|
||||
Make sure you install version 17
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
sudo apt install default-jdk
|
||||
@ -55,6 +57,12 @@ Make sure you have NDK installed : `Tools > SDK Manager > SDK Tools > NDK (Side
|
||||
|
||||
## Launch app builder and
|
||||
|
||||
Make sure you have the `main.js` file created on `robosats/mobile/html/Web.bundle/js`, if not, go to `robosats/frontend/`
|
||||
|
||||
```
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Point a terminal to `/robosats/mobile/`
|
||||
|
||||
```
|
||||
@ -71,20 +79,24 @@ npx react-native run-android
|
||||
|
||||
## Install JDK
|
||||
|
||||
Make sure you install version 17
|
||||
|
||||
```
|
||||
https://www.oracle.com/java/technologies/downloads
|
||||
```
|
||||
|
||||
## Install Android Studio
|
||||
|
||||
Download and install https://developer.android.com/studio/index.html.
|
||||
Download and install https://developer.android.com/studio/index.html
|
||||
Make sure you have the following libraries installed globally.
|
||||
|
||||
```
|
||||
npm -i react-native-cli
|
||||
npm install -g react-native-cli
|
||||
brew install android-platform-tools
|
||||
```
|
||||
|
||||
Open `robosats/mobile/android` to start the first build process.
|
||||
|
||||
## Install watchman
|
||||
|
||||
Check https://github.com/facebook/watchman/releases/download or use brew:
|
||||
@ -109,14 +121,14 @@ Make sure you have NDK installed : `Tools > SDK Manager > SDK Tools > NDK (Side
|
||||
|
||||
## Run app
|
||||
|
||||
Make sure you have the `main.js` file created on `robosats/mobile/html/Web.bundle/js`, if not, go to `robosats/frontend/`
|
||||
|
||||
```
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Point a terminal to `robosats/mobile/`
|
||||
|
||||
```
|
||||
npx react-native start --reset-cache
|
||||
```
|
||||
|
||||
To create builds, on another temrinal also in `robosats/mobile/`
|
||||
|
||||
```
|
||||
npx react-native run-android
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user