merge qrcode
This commit is contained in:
commit
aa1973af08
@ -1,177 +0,0 @@
|
|||||||
/* ************************************************************************** */
|
|
||||||
/* */
|
|
||||||
/* ::: :::::::: */
|
|
||||||
/* chat.service.ts :+: :+: :+: */
|
|
||||||
/* +:+ +:+ +:+ */
|
|
||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
|
||||||
/* +#+#+#+#+#+ +#+ */
|
|
||||||
/* Created: 2023/06/17 01:00:25 by apommier #+# #+# */
|
|
||||||
/* Updated: 2023/06/17 17:31:11 by apommier ### ########.fr */
|
|
||||||
/* */
|
|
||||||
/* ************************************************************************** */
|
|
||||||
|
|
||||||
import { Injectable } from '@nestjs/common';
|
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
|
||||||
import { Repository } from 'typeorm';
|
|
||||||
import { Conv } from '../model/chat.entity';
|
|
||||||
import { Message } from '../model/chat.entity';
|
|
||||||
|
|
||||||
import * as bcrypt from 'bcrypt';
|
|
||||||
|
|
||||||
import { ArrayContains } from "typeorm"
|
|
||||||
import { query } from 'express';
|
|
||||||
import { InitializeOnPreviewAllowlist } from '@nestjs/core';
|
|
||||||
|
|
||||||
|
|
||||||
@Injectable()
|
|
||||||
export class ChatService {
|
|
||||||
constructor(@InjectRepository(Conv) private chatRepository: Repository<Conv>,
|
|
||||||
@InjectRepository(Message) private messageRepository: Repository<Message>,
|
|
||||||
) {}
|
|
||||||
|
|
||||||
async save(conv: Conv): Promise<Conv> {
|
|
||||||
return await this.chatRepository.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async findAll(): Promise<Conv[]> {
|
|
||||||
return await this.chatRepository.find();
|
|
||||||
}
|
|
||||||
|
|
||||||
async createConv(conv: Conv): Promise<Conv> {
|
|
||||||
return await this.chatRepository.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async getConv(username: string): Promise<Conv[]>{
|
|
||||||
// username = "apommier"
|
|
||||||
const convs = await this.chatRepository.query("SELECT * FROM \"conv\" WHERE $1 = ANY (ARRAY[members]);", [username])
|
|
||||||
console.log(`convs= ${convs}`)
|
|
||||||
return convs;
|
|
||||||
}
|
|
||||||
|
|
||||||
async findConv(number: number){
|
|
||||||
// username = "apommier"
|
|
||||||
console.log(`fincConv; ${number}`)
|
|
||||||
const conv = await this.chatRepository.findOneBy({id: number})
|
|
||||||
return conv;
|
|
||||||
}
|
|
||||||
|
|
||||||
async createMessage(message: Message, username: string): Promise<Message> {
|
|
||||||
const conv = await this.findConv(message.convid);
|
|
||||||
if (conv.banned.find(item => item === username))
|
|
||||||
return ;
|
|
||||||
if (conv.muted.find(item => item === username))
|
|
||||||
return ;
|
|
||||||
return await this.messageRepository.save(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
async isAllowed(convId: number, username: string) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
if (conv.banned.find(item => item === username))
|
|
||||||
return (0);
|
|
||||||
if (conv.muted.find(item => item === username))
|
|
||||||
return (0);
|
|
||||||
return (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
async getMessages(convId: number): Promise<Message[]> {
|
|
||||||
const convs = await this.chatRepository
|
|
||||||
.query("SELECT * FROM \"message\" WHERE $1 = message.convid;", [convId])
|
|
||||||
|
|
||||||
return (convs)
|
|
||||||
}
|
|
||||||
|
|
||||||
async banUser(convId: number, username: string) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
|
|
||||||
conv.banned = conv.banned || [];
|
|
||||||
if (conv.banned.find(item => item === username))
|
|
||||||
return (1);
|
|
||||||
conv.banned.push(username);
|
|
||||||
this.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async inviteUser(convId: number, username: string) {
|
|
||||||
// const conv = await this.findConv(convId);
|
|
||||||
// this.save(conv);
|
|
||||||
|
|
||||||
//find user
|
|
||||||
//add in chanInvite chanID
|
|
||||||
//save user
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async setPassword(convId: number, password: string) {
|
|
||||||
//verify is user is admin ?
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
const saltRounds = 10;
|
|
||||||
const hashedPassword = await bcrypt.hash(password, saltRounds);
|
|
||||||
// return hashedPassword;
|
|
||||||
conv.password = hashedPassword
|
|
||||||
this.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async verifyPassword(convId: number, password: string) {
|
|
||||||
//verify is user is admin ?
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
return await bcrypt.compare(password, conv.password);
|
|
||||||
|
|
||||||
// conv.password = password
|
|
||||||
}
|
|
||||||
|
|
||||||
async muteUser(convId: number, username: string) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
|
|
||||||
conv.muted = conv.muted || [];
|
|
||||||
if (conv.muted.find(item => item === username))
|
|
||||||
return (1);
|
|
||||||
conv.muted.push(username);
|
|
||||||
this.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async setAdmin(convId: number, username: string) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
|
|
||||||
conv.admin = conv.admin || [];
|
|
||||||
if (conv.admin.find(item => item === username))
|
|
||||||
return (1);
|
|
||||||
conv.admin.push(username);
|
|
||||||
this.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async isAdmin(convId: number, username: string) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
|
|
||||||
conv.admin = conv.admin || [];
|
|
||||||
if (conv.admin.find(item => item === username))
|
|
||||||
return (1);
|
|
||||||
console.log("nope");
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
async setPrivate(convId: number) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
if (conv.private === true)
|
|
||||||
conv.private = false;
|
|
||||||
else
|
|
||||||
conv.private = true;
|
|
||||||
this.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async setName(convId: number, name: string) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
conv.name = name;
|
|
||||||
this.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
async joinChannel(convId: number, username: string) {
|
|
||||||
const conv = await this.findConv(convId);
|
|
||||||
conv.members = conv.members || [];
|
|
||||||
if (conv.members.find(item => item === username))
|
|
||||||
return ;
|
|
||||||
conv.members.push(username);
|
|
||||||
// conv.name = name;
|
|
||||||
this.save(conv);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
44
containers/react/package-lock.json
generated
44
containers/react/package-lock.json
generated
@ -14,6 +14,7 @@
|
|||||||
"axios": "^1.3.5",
|
"axios": "^1.3.5",
|
||||||
"framer-motion": "^10.12.8",
|
"framer-motion": "^10.12.8",
|
||||||
"npm": "^9.6.6",
|
"npm": "^9.6.6",
|
||||||
|
"qr-code-styling": "^1.6.0-rc.1",
|
||||||
"query-string": "^8.1.0",
|
"query-string": "^8.1.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
@ -6140,6 +6141,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"anymatch": "~3.1.2",
|
"anymatch": "~3.1.2",
|
||||||
"braces": "~3.0.2",
|
"braces": "~3.0.2",
|
||||||
|
"fsevents": "~2.3.2",
|
||||||
"glob-parent": "~5.1.2",
|
"glob-parent": "~5.1.2",
|
||||||
"is-binary-path": "~2.1.0",
|
"is-binary-path": "~2.1.0",
|
||||||
"is-glob": "~4.0.1",
|
"is-glob": "~4.0.1",
|
||||||
@ -7510,7 +7512,8 @@
|
|||||||
"esprima": "^4.0.1",
|
"esprima": "^4.0.1",
|
||||||
"estraverse": "^5.2.0",
|
"estraverse": "^5.2.0",
|
||||||
"esutils": "^2.0.2",
|
"esutils": "^2.0.2",
|
||||||
"optionator": "^0.8.1"
|
"optionator": "^0.8.1",
|
||||||
|
"source-map": "~0.6.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"escodegen": "bin/escodegen.js",
|
"escodegen": "bin/escodegen.js",
|
||||||
@ -8840,6 +8843,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.8.tgz",
|
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.12.8.tgz",
|
||||||
"integrity": "sha512-ylobYq3tGFjjAmRdBs5pL/R1+4AmOm69g/JbF5DcNETfRe8L9CjaX4acG83MjYdIsbsTGJmtR5qKx4glNmXO4A==",
|
"integrity": "sha512-ylobYq3tGFjjAmRdBs5pL/R1+4AmOm69g/JbF5DcNETfRe8L9CjaX4acG83MjYdIsbsTGJmtR5qKx4glNmXO4A==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@emotion/is-prop-valid": "^0.8.2",
|
||||||
"tslib": "^2.4.0"
|
"tslib": "^2.4.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
@ -10715,6 +10719,7 @@
|
|||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"anymatch": "^3.0.3",
|
"anymatch": "^3.0.3",
|
||||||
"fb-watchman": "^2.0.0",
|
"fb-watchman": "^2.0.0",
|
||||||
|
"fsevents": "^2.3.2",
|
||||||
"graceful-fs": "^4.2.9",
|
"graceful-fs": "^4.2.9",
|
||||||
"jest-regex-util": "^27.5.1",
|
"jest-regex-util": "^27.5.1",
|
||||||
"jest-serializer": "^27.5.1",
|
"jest-serializer": "^27.5.1",
|
||||||
@ -12271,6 +12276,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||||
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"graceful-fs": "^4.1.6",
|
||||||
"universalify": "^2.0.0"
|
"universalify": "^2.0.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
@ -13770,6 +13776,7 @@
|
|||||||
"inBundle": true,
|
"inBundle": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@colors/colors": "1.5.0",
|
||||||
"string-width": "^4.2.0"
|
"string-width": "^4.2.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@ -14306,7 +14313,8 @@
|
|||||||
"inBundle": true,
|
"inBundle": true,
|
||||||
"license": "BlueOak-1.0.0",
|
"license": "BlueOak-1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@isaacs/cliui": "^8.0.2"
|
"@isaacs/cliui": "^8.0.2",
|
||||||
|
"@pkgjs/parseargs": "^0.11.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14"
|
"node": ">=14"
|
||||||
@ -14592,6 +14600,7 @@
|
|||||||
"inBundle": true,
|
"inBundle": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"encoding": "^0.1.13",
|
||||||
"minipass": "^5.0.0",
|
"minipass": "^5.0.0",
|
||||||
"minipass-sized": "^1.0.3",
|
"minipass-sized": "^1.0.3",
|
||||||
"minizlib": "^2.1.2"
|
"minizlib": "^2.1.2"
|
||||||
@ -14971,6 +14980,7 @@
|
|||||||
"inBundle": true,
|
"inBundle": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"encoding": "^0.1.13",
|
||||||
"minipass": "^3.1.6",
|
"minipass": "^3.1.6",
|
||||||
"minipass-sized": "^1.0.3",
|
"minipass-sized": "^1.0.3",
|
||||||
"minizlib": "^2.1.2"
|
"minizlib": "^2.1.2"
|
||||||
@ -17958,6 +17968,19 @@
|
|||||||
"teleport": ">=0.2.0"
|
"teleport": ">=0.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/qr-code-styling": {
|
||||||
|
"version": "1.6.0-rc.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/qr-code-styling/-/qr-code-styling-1.6.0-rc.1.tgz",
|
||||||
|
"integrity": "sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"qrcode-generator": "^1.4.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/qrcode-generator": {
|
||||||
|
"version": "1.4.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz",
|
||||||
|
"integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw=="
|
||||||
|
},
|
||||||
"node_modules/qs": {
|
"node_modules/qs": {
|
||||||
"version": "6.11.0",
|
"version": "6.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||||
@ -18306,6 +18329,7 @@
|
|||||||
"eslint-webpack-plugin": "^3.1.1",
|
"eslint-webpack-plugin": "^3.1.1",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"fs-extra": "^10.0.0",
|
"fs-extra": "^10.0.0",
|
||||||
|
"fsevents": "^2.3.2",
|
||||||
"html-webpack-plugin": "^5.5.0",
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"identity-obj-proxy": "^3.0.0",
|
"identity-obj-proxy": "^3.0.0",
|
||||||
"jest": "^27.4.3",
|
"jest": "^27.4.3",
|
||||||
@ -18742,6 +18766,9 @@
|
|||||||
"version": "2.79.1",
|
"version": "2.79.1",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
||||||
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
|
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
|
||||||
|
"dependencies": {
|
||||||
|
"fsevents": "~2.3.2"
|
||||||
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
},
|
},
|
||||||
@ -33695,6 +33722,19 @@
|
|||||||
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
|
||||||
"integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw=="
|
"integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw=="
|
||||||
},
|
},
|
||||||
|
"qr-code-styling": {
|
||||||
|
"version": "1.6.0-rc.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/qr-code-styling/-/qr-code-styling-1.6.0-rc.1.tgz",
|
||||||
|
"integrity": "sha512-ModRIiW6oUnsP18QzrRYZSc/CFKFKIdj7pUs57AEVH20ajlglRpN3HukjHk0UbNMTlKGuaYl7Gt6/O5Gg2NU2Q==",
|
||||||
|
"requires": {
|
||||||
|
"qrcode-generator": "^1.4.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"qrcode-generator": {
|
||||||
|
"version": "1.4.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/qrcode-generator/-/qrcode-generator-1.4.4.tgz",
|
||||||
|
"integrity": "sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw=="
|
||||||
|
},
|
||||||
"qs": {
|
"qs": {
|
||||||
"version": "6.11.0",
|
"version": "6.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
"axios": "^1.3.5",
|
"axios": "^1.3.5",
|
||||||
"framer-motion": "^10.12.8",
|
"framer-motion": "^10.12.8",
|
||||||
"npm": "^9.6.6",
|
"npm": "^9.6.6",
|
||||||
|
"qr-code-styling": "^1.6.0-rc.1",
|
||||||
"query-string": "^8.1.0",
|
"query-string": "^8.1.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import PlayButton from "./Game/PlayButton.js";
|
|||||||
import Field from "../pages/Field";
|
import Field from "../pages/Field";
|
||||||
import Login42 from "../pages/Login42.js";
|
import Login42 from "../pages/Login42.js";
|
||||||
import Messages from "../pages/Messages.jsx";
|
import Messages from "../pages/Messages.jsx";
|
||||||
|
import QrCode from '../pages/QrCode.jsx'
|
||||||
import { useLocation } from "react-router-dom";
|
import { useLocation } from "react-router-dom";
|
||||||
import {AnimatePresence} from "framer-motion";
|
import {AnimatePresence} from "framer-motion";
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ function AnimatedRoute () {
|
|||||||
<Route exact path="/" element={<Home/>}/>
|
<Route exact path="/" element={<Home/>}/>
|
||||||
<Route exact path="/profile" element={<Home/>}/>
|
<Route exact path="/profile" element={<Home/>}/>
|
||||||
<Route exact path="/profile/:username" element={<Home/>}/>
|
<Route exact path="/profile/:username" element={<Home/>}/>
|
||||||
|
<Route exact path="/qr" element={<QrCode/>}/>
|
||||||
|
|
||||||
<Route exact path="/2fa" element={<DoubleAuth/>}/>
|
<Route exact path="/2fa" element={<DoubleAuth/>}/>
|
||||||
<Route exact path="/Social" element={<Social/>}/>
|
<Route exact path="/Social" element={<Social/>}/>
|
||||||
|
|||||||
66
containers/react/src/pages/QrCode.jsx
Normal file
66
containers/react/src/pages/QrCode.jsx
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
import React, { useEffect, useRef, useState } from "react";
|
||||||
|
import "../styles/App.css";
|
||||||
|
import QRCodeStyling from "qr-code-styling";
|
||||||
|
import { motion } from 'framer-motion'
|
||||||
|
import api from '../script/axiosApi';
|
||||||
|
|
||||||
|
|
||||||
|
const qrCode = new QRCodeStyling({
|
||||||
|
width: 300,
|
||||||
|
height: 300,
|
||||||
|
// image: "../assets/profile.jpg",
|
||||||
|
dotsOptions: {
|
||||||
|
color: "black",
|
||||||
|
type: "rounded"
|
||||||
|
},
|
||||||
|
backgroundOptions: {
|
||||||
|
color: "#5843e4",
|
||||||
|
},
|
||||||
|
imageOptions: {
|
||||||
|
crossOrigin: "anonymous",
|
||||||
|
margin: 20
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function QrCode () {
|
||||||
|
const url = "https://www.youtube.com";
|
||||||
|
const ref = useRef(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
qrCode.append(ref.current);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
qrCode.update({
|
||||||
|
data: url
|
||||||
|
});
|
||||||
|
}, [url]);
|
||||||
|
|
||||||
|
const getConv = async ()=>{
|
||||||
|
try{
|
||||||
|
const convs = await api.get("/user")
|
||||||
|
// const tmpUser = await api.get("/profile")
|
||||||
|
console.log("test")
|
||||||
|
console.table(convs);
|
||||||
|
}
|
||||||
|
catch(err){
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
getConv();
|
||||||
|
return (
|
||||||
|
<motion.div className="page"
|
||||||
|
initial={{opacity: -1}}
|
||||||
|
animate={{opacity: 1}}
|
||||||
|
exit={{opacity: -1}}>
|
||||||
|
<h1>QrCode</h1>
|
||||||
|
<h3>Your code is: 231 31 31</h3>
|
||||||
|
<div ref={ref} />
|
||||||
|
<input type="text" className="qr" placeholder="type the secret"/>
|
||||||
|
{}
|
||||||
|
|
||||||
|
</motion.div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default QrCode
|
||||||
@ -6,6 +6,14 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
input.qr{
|
||||||
|
width: 20%;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: rgb(66, 66, 66);
|
||||||
|
margin : 1%;
|
||||||
|
color:white;
|
||||||
|
}
|
||||||
|
|
||||||
.App-logo {
|
.App-logo {
|
||||||
height: 40vmin;
|
height: 40vmin;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user