Added auth modal to q-apps
This commit is contained in:
parent
353943cbf9
commit
21951f3ebe
@ -14,14 +14,15 @@ import './login-section.js'
|
|||||||
import '../qort-theme-toggle.js'
|
import '../qort-theme-toggle.js'
|
||||||
|
|
||||||
import settings from '../../functional-components/settings-page.js'
|
import settings from '../../functional-components/settings-page.js'
|
||||||
import { addAutoLoadImageChat, removeAutoLoadImageChat, addChatLastSeen } from '../../redux/app/app-actions.js'
|
import { addAutoLoadImageChat, removeAutoLoadImageChat, addChatLastSeen, allowQAPPAutoAuth, removeQAPPAutoAuth } from '../../redux/app/app-actions.js'
|
||||||
|
|
||||||
window.reduxStore = store
|
window.reduxStore = store
|
||||||
window.reduxAction = {
|
window.reduxAction = {
|
||||||
addAutoLoadImageChat: addAutoLoadImageChat,
|
addAutoLoadImageChat: addAutoLoadImageChat,
|
||||||
removeAutoLoadImageChat: removeAutoLoadImageChat,
|
removeAutoLoadImageChat: removeAutoLoadImageChat,
|
||||||
addChatLastSeen: addChatLastSeen
|
addChatLastSeen: addChatLastSeen,
|
||||||
|
allowQAPPAutoAuth: allowQAPPAutoAuth,
|
||||||
|
removeQAPPAutoAuth: removeQAPPAutoAuth
|
||||||
}
|
}
|
||||||
|
|
||||||
const animationDuration = 0.7 // Seconds
|
const animationDuration = 0.7 // Seconds
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Core App Actions here...
|
// Core App Actions here...
|
||||||
import { UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, CHAT_HEADS, ACCOUNT_INFO, COPY_MENU_SWITCH, PASTE_MENU_SWITCH, FRAME_PASTE_MENU_SWITCH, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN } from '../app-action-types.js'
|
import { UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, CHAT_HEADS, ACCOUNT_INFO, COPY_MENU_SWITCH, PASTE_MENU_SWITCH, FRAME_PASTE_MENU_SWITCH, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN } from '../app-action-types.js'
|
||||||
|
|
||||||
export const doUpdateBlockInfo = (blockObj) => {
|
export const doUpdateBlockInfo = (blockObj) => {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
@ -120,6 +120,20 @@ export const removeAutoLoadImageChat = (payload) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const allowQAPPAutoAuth = (payload) => {
|
||||||
|
return {
|
||||||
|
type: ALLOW_QAPP_AUTO_AUTH,
|
||||||
|
payload
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const removeQAPPAutoAuth = (payload) => {
|
||||||
|
return {
|
||||||
|
type: REMOVE_QAPP_AUTO_AUTH,
|
||||||
|
payload
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export const setChatLastSeen = (payload) => {
|
export const setChatLastSeen = (payload) => {
|
||||||
return {
|
return {
|
||||||
type: SET_CHAT_LAST_SEEN,
|
type: SET_CHAT_LAST_SEEN,
|
||||||
|
@ -22,5 +22,7 @@ export const PASTE_MENU_SWITCH = 'PASTE_MENU_SWITCH'
|
|||||||
export const FRAME_PASTE_MENU_SWITCH = 'FRAME_PASTE_MENU_SWITCH'
|
export const FRAME_PASTE_MENU_SWITCH = 'FRAME_PASTE_MENU_SWITCH'
|
||||||
export const ADD_AUTO_LOAD_IMAGES_CHAT = 'ADD_AUTO_LOAD_IMAGES_CHAT'
|
export const ADD_AUTO_LOAD_IMAGES_CHAT = 'ADD_AUTO_LOAD_IMAGES_CHAT'
|
||||||
export const REMOVE_AUTO_LOAD_IMAGES_CHAT = 'REMOVE_AUTO_LOAD_IMAGES_CHAT'
|
export const REMOVE_AUTO_LOAD_IMAGES_CHAT = 'REMOVE_AUTO_LOAD_IMAGES_CHAT'
|
||||||
|
export const ALLOW_QAPP_AUTO_AUTH = 'ALLOW_QAPP_AUTO_AUTH'
|
||||||
|
export const REMOVE_QAPP_AUTO_AUTH = 'REMOVE_QAPP_AUTO_AUTH'
|
||||||
export const SET_CHAT_LAST_SEEN = 'SET_CHAT_LAST_SEEN'
|
export const SET_CHAT_LAST_SEEN = 'SET_CHAT_LAST_SEEN'
|
||||||
export const ADD_CHAT_LAST_SEEN = 'ADD_CHAT_LAST_SEEN'
|
export const ADD_CHAT_LAST_SEEN = 'ADD_CHAT_LAST_SEEN'
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// Loading state, login state, isNavDrawOpen state etc. None of this needs to be saved to localstorage.
|
// Loading state, login state, isNavDrawOpen state etc. None of this needs to be saved to localstorage.
|
||||||
import { loadStateFromLocalStorage, saveStateToLocalStorage } from '../../localStorageHelpers.js'
|
import { loadStateFromLocalStorage, saveStateToLocalStorage } from '../../localStorageHelpers.js'
|
||||||
import { LOG_IN, LOG_OUT, NETWORK_CONNECTION_STATUS, INIT_WORKERS, ADD_PLUGIN_URL, ADD_PLUGIN, ADD_NEW_PLUGIN_URL, NAVIGATE, SELECT_ADDRESS, ACCOUNT_INFO, CHAT_HEADS, UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, LOAD_NODE_CONFIG, SET_NODE, ADD_NODE, PAGE_URL, COPY_MENU_SWITCH, PASTE_MENU_SWITCH, FRAME_PASTE_MENU_SWITCH, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN } from './app-action-types.js'
|
import { LOG_IN, LOG_OUT, NETWORK_CONNECTION_STATUS, INIT_WORKERS, ADD_PLUGIN_URL, ADD_PLUGIN, ADD_NEW_PLUGIN_URL, NAVIGATE, SELECT_ADDRESS, ACCOUNT_INFO, CHAT_HEADS, UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, LOAD_NODE_CONFIG, SET_NODE, ADD_NODE, PAGE_URL, COPY_MENU_SWITCH, PASTE_MENU_SWITCH, FRAME_PASTE_MENU_SWITCH, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN } from './app-action-types.js'
|
||||||
import { initWorkersReducer } from './reducers/init-workers.js'
|
import { initWorkersReducer } from './reducers/init-workers.js'
|
||||||
import { loginReducer } from './reducers/login-reducer.js'
|
import { loginReducer } from './reducers/login-reducer.js'
|
||||||
import { setNode, addNode } from './reducers/manage-node.js'
|
import { setNode, addNode } from './reducers/manage-node.js'
|
||||||
@ -50,6 +50,7 @@ const INITIAL_STATE = {
|
|||||||
elementId: ''
|
elementId: ''
|
||||||
},
|
},
|
||||||
autoLoadImageChats: loadStateFromLocalStorage('autoLoadImageChats') || [],
|
autoLoadImageChats: loadStateFromLocalStorage('autoLoadImageChats') || [],
|
||||||
|
qAPPAutoAuth: loadStateFromLocalStorage('qAPPAutoAuth') || false,
|
||||||
chatLastSeen: []
|
chatLastSeen: []
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,6 +176,23 @@ export default (state = INITIAL_STATE, action) => {
|
|||||||
autoLoadImageChats: updatedState
|
autoLoadImageChats: updatedState
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ALLOW_QAPP_AUTO_AUTH: {
|
||||||
|
saveStateToLocalStorage("qAPPAutoAuth", true)
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
qAPPAutoAuth: action.payload
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
case REMOVE_QAPP_AUTO_AUTH: {
|
||||||
|
saveStateToLocalStorage("qAPPAutoAuth", false)
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
qAPPAutoAuth: action.payload
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case SET_CHAT_LAST_SEEN: {
|
case SET_CHAT_LAST_SEEN: {
|
||||||
return {
|
return {
|
||||||
...state,
|
...state,
|
||||||
|
@ -15,6 +15,7 @@ registerTranslateConfig({
|
|||||||
|
|
||||||
import '@material/mwc-button';
|
import '@material/mwc-button';
|
||||||
import '@material/mwc-icon';
|
import '@material/mwc-icon';
|
||||||
|
import '@material/mwc-checkbox'
|
||||||
import WebWorker from 'web-worker:./computePowWorkerFile.src.js';
|
import WebWorker from 'web-worker:./computePowWorkerFile.src.js';
|
||||||
import WebWorkerChat from 'web-worker:./computePowWorker.src.js';
|
import WebWorkerChat from 'web-worker:./computePowWorker.src.js';
|
||||||
import { publishData } from '../../../utils/publish-image.js';
|
import { publishData } from '../../../utils/publish-image.js';
|
||||||
@ -231,7 +232,6 @@ class WebBrowser extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
console.log(1, "browser page here");
|
|
||||||
return html`
|
return html`
|
||||||
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
<div id="websitesWrapper" style="width:auto; padding:10px; background: var(--white);">
|
||||||
<div class="layout horizontal center">
|
<div class="layout horizontal center">
|
||||||
@ -457,10 +457,21 @@ class WebBrowser extends LitElement {
|
|||||||
switch (data.action) {
|
switch (data.action) {
|
||||||
case 'GET_USER_ACCOUNT':
|
case 'GET_USER_ACCOUNT':
|
||||||
case actions.GET_USER_ACCOUNT:
|
case actions.GET_USER_ACCOUNT:
|
||||||
const res1 = await showModalAndWait(
|
let skip = false;
|
||||||
actions.GET_USER_ACCOUNT
|
if (window.parent.reduxStore.getState().app.qAPPAutoAuth) {
|
||||||
);
|
skip = true;
|
||||||
if (res1.action === 'accept') {
|
}
|
||||||
|
let res1;
|
||||||
|
if (!skip) {
|
||||||
|
res1 = await showModalAndWait(
|
||||||
|
actions.GET_USER_ACCOUNT,
|
||||||
|
{
|
||||||
|
service: this.service,
|
||||||
|
name: this.name
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
if ((res1 && res1.action === 'accept') || skip) {
|
||||||
let account = {};
|
let account = {};
|
||||||
account['address'] = this.selectedAddress.address;
|
account['address'] = this.selectedAddress.address;
|
||||||
account['publicKey'] =
|
account['publicKey'] =
|
||||||
@ -1439,7 +1450,21 @@ async function showModalAndWait(type, data) {
|
|||||||
` <div class="modal my-modal-class">
|
` <div class="modal my-modal-class">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
${type === actions.GET_USER_ACCOUNT ? `<p class="modal-paragraph">${get("browserpage.bchange18")}</p>` : ''}
|
${type === actions.GET_USER_ACCOUNT ? `
|
||||||
|
<div class="modal-subcontainer">
|
||||||
|
<p class="modal-paragraph">${`${data.service} ${data.name} ${get("browserpage.bchange18")}`}</p>
|
||||||
|
<p class="modal-paragraph">${get("browserpage.bchange24")} ${data.service}</p>
|
||||||
|
<p class="modal-paragraph">${get("browserpage.bchange25")}</p>
|
||||||
|
<div class="checkbox-row">
|
||||||
|
<label for="authButton" id="authButtonLabel">
|
||||||
|
${get('browserpage.bchange26')}
|
||||||
|
</label>
|
||||||
|
<mwc-checkbox style="margin-right: -15px;" id="authButton"
|
||||||
|
?checked=${window.parent.reduxStore.getState().app.qAPPAutoAuth}>
|
||||||
|
</mwc-checkbox>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
` : ''}
|
||||||
${type === actions.PUBLISH_QDN_RESOURCE ? `<p class="modal-paragraph">${get("browserpage.bchange19")}</p>` : ''}
|
${type === actions.PUBLISH_QDN_RESOURCE ? `<p class="modal-paragraph">${get("browserpage.bchange19")}</p>` : ''}
|
||||||
${type === actions.GET_WALLET_BALANCE ? `<p class="modal-paragraph">${get("browserpage.bchange20")}</p>` : ''}
|
${type === actions.GET_WALLET_BALANCE ? `<p class="modal-paragraph">${get("browserpage.bchange20")}</p>` : ''}
|
||||||
${type === actions.SEND_CHAT_MESSAGE ? `<p class="modal-paragraph">${get("browserpage.bchange22")}</p>` : ''}
|
${type === actions.SEND_CHAT_MESSAGE ? `<p class="modal-paragraph">${get("browserpage.bchange22")}</p>` : ''}
|
||||||
@ -1462,6 +1487,11 @@ async function showModalAndWait(type, data) {
|
|||||||
}
|
}
|
||||||
resolve({ action: 'accept', userData });
|
resolve({ action: 'accept', userData });
|
||||||
});
|
});
|
||||||
|
const modalContent = modal.querySelector('.modal-content');
|
||||||
|
modalContent.addEventListener('click', (e) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
return;
|
||||||
|
});
|
||||||
const backdropClick = document.getElementById('backdrop');
|
const backdropClick = document.getElementById('backdrop');
|
||||||
backdropClick.addEventListener('click', () => {
|
backdropClick.addEventListener('click', () => {
|
||||||
if (modal.parentNode === document.body) {
|
if (modal.parentNode === document.body) {
|
||||||
@ -1476,6 +1506,18 @@ async function showModalAndWait(type, data) {
|
|||||||
}
|
}
|
||||||
resolve({ action: 'reject' });
|
resolve({ action: 'reject' });
|
||||||
});
|
});
|
||||||
|
const labelButton = modal.querySelector('#authButtonLabel');
|
||||||
|
labelButton.addEventListener('click', () => {
|
||||||
|
this.shadowRoot.getElementById('authButton').click();
|
||||||
|
})
|
||||||
|
const checkbox = modal.querySelector('#authButton');
|
||||||
|
checkbox.addEventListener('click', (e) => {
|
||||||
|
if (e.target.checked) {
|
||||||
|
window.parent.reduxStore.dispatch( window.parent.reduxAction.removeQAPPAutoAuth(false))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
window.parent.reduxStore.dispatch( window.parent.reduxAction.allowQAPPAutoAuth(true))
|
||||||
|
})
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1553,6 +1595,13 @@ justify-content: space-between;
|
|||||||
padding: 25px;
|
padding: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modal-subcontainer {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
.modal-paragraph {
|
.modal-paragraph {
|
||||||
font-family: Roboto, sans-serif;
|
font-family: Roboto, sans-serif;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
@ -1562,6 +1611,14 @@ color: black;
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.checkbox-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-family: Montserrat, sans-serif;
|
||||||
|
font-weight: 600;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
.modal-buttons {
|
.modal-buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user