event.preventDefault56
1 |
1 |
1 | {playing ? "Stop" : "Play"} |
1 |
USESTATE
1 |
RENDER CONDIZIONALE
1 | {playing ? "Stop" : "Play"} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | {(props.salva === "multipla" && props.risposta_singola.key !== '') && <button> Cancella_immagine_dal_bucket_S3()}> Erase2 </button> } function Mostra_alert() { if (show_alert) { return <div class="alert alert-success" role="alert">This is a success alert with <a class="alert-link" href="#">an example link</a>. Give it a click if you like.</div> } if (!show) { console.log('sadgsdfgdsfgsdfgdsfgds') return } } return ( <div>{Mostra_alert()}</div> ine="1">); |
Altro esempio
1 2 3 4 5 | function Mostra_progress_bar() { let barra = -100*props.item.indice_aux/props.item.indice_end // console.log (barra) if (barra > 0) { return |
1 2 3 | } if (barra < 0) { return |
}
}
return (
{Mostra_progress_bar()}
)
Render un Oggettoid con i suoi elementi
1 2 3 4 | } } return ( |
You have {item.alunno.nome} unread messages.
1 | ) |
CSS
Cambiare il CSS tramite una funzione
1 | {item.alunno !== undefined && |
{‘ ‘}
1 | } |
PAGINE DI BASE
1 2 3 4 5 6 7 | function colorazione(item) { var hStyle = { backgroundColor: item.colore_sfondo, color: item.colore_sfondo, margin: '1px', padding: '1px', border: 'lightgreen', borderRadius: '2vmin' }; return hStyle; } |
UTILIZZARE UNA FUNZIONE IN UN ALTRA PAGINA
1 |
Nel file che chiama la funzione esterna
1 2 3 4 5 6 7 8 9 10 11 | import React, { useState } from 'react'; //import './navbar.css'; import { Link } from "react-router-dom" import Scroll_evento from "./X2_scroll_evento.jsx"; const Scroll_evento = () => { // const [somma, calcola_somma] = useState(''); return ( <div>ciao2</div> ) } export default Scroll_evento; |
Quando serve una libreria come AXIOS il modo per chiamarla è diverso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | const { AWS_uploadFile_PDF, AWS_geturl_PDF, AWS_cancella_file } = require('./S3_File_pdf') // uploads a file to s3 function AWS_uploadFile_PDF(file) { const fileStream = fs.createReadStream(file.path) const uploadParams = { Bucket: bucketName, Body: fileStream, Key: file.filename, // ContentDisposition: "inline", ContentType: "application/pdf" } return s3.upload(uploadParams).promise() } exports.AWS_uploadFile_PDF = AWS_uploadFile_PDF |
PAGINE DI BASE CHIAMATA DI UNA FUNZIONE DI APPOGGIO CON UN RETURN
DROPDWON MENU
1 | const { AWS_uploadFile_PDF } = require('../funzioni_comuni_array_classi') |
{Cambia_nome_allegati()}
{/* Action */} Cancella domanda Modifica domanda {isLoggedIn && ( <> {props.item._id} )}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | const axios = require('axios') function AWS_uploadFile_PDF(file) { console.log('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ssaedgfwerrfgh') }; exports.AWS_uploadFile_PDF = AWS_uploadFile_PDF; function aggiungi_classi_non_spalmate_array (materiale_id, programma_della_classe, id_utente) { axios.get('/materiali/trova_materiale/' + materiale_id) .then((res) => { console.log('MATERIALI appena fecciate da mongo') console.log(res.data) let lista_classi_gia_presenti = res.data.array_classi console.log('id_utente' + id_utente) console.log('programma_della_classe' + programma_della_classe) axios.get('/classi/classi_carica_tutti_programma/' + id_utente + '/' + programma_della_classe) .then((res) => { console.log('CLASSI appena fecciate da mongo') let lista_classi_per_programma = res.data controlla_se_aggiungere_classi_ad_array(lista_classi_gia_presenti, lista_classi_per_programma, materiale_id) }).catch((error) => { console.log(error) }); }).catch((error) => { console.log(error) }); } exports.aggiungi_classi_non_spalmate_array = aggiungi_classi_non_spalmate_array function trova_classi_che_seguono_il_programma (programma_della_classe, id_utente) { axios.get('/classi/classi_carica_tutti_programma/' + id_utente + '/' + programma_della_classe) .then((res) => { console.log('CLASSI appena fecciate da mongo') return res.data }).catch((error) => { console.log(error) }); } exports.trova_classi_che_seguono_il_programma = trova_classi_che_seguono_il_programma |
PAGINE DI BASE CON UN PULSANTE CHE APRE UN FORM
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | import React, { useState } from 'react'; import axios from 'axios' import '../App.css'; import { Dropdown, DropdownButton, Accordion, Card, Button, Modal, Form } from 'react-bootstrap'; import Risposta_modifica from './X15_0_edit_risposta'; import { useSelector, useDispatch } from 'react-redux' async function salva_file_server_s3({ image, description }) { const formData = new FormData(); formData.append("image", image) formData.append("description", description) const result = await axios.post('/transfer_s3/file_pdf', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) console.log('tornato nel front end') console.log(result.data) return result.data } const Gestione_menu_alto_destra = (props) => { const [file, setFile] = useState() const [description, setDescription] = useState("") const [images, setImages] = useState([]) const [show_edit_domanda, setShow_edit_domanda] = useState(false); const id_utente = useSelector(state => state.variabile.value) const isLoggedIn = id_utente === "612fb32ad7c7ea0bf37cbe8f" const submit = async event => { event.preventDefault() const result = await salva_file_server_s3({ image: file, description }) setImages([result.image, ...images]) console.log(result.Key) console.log(file) } const fileSelected = event => { const file = event.target.files[0] setFile(file) } const handleSubmit1 = (e) => { alert('scrivi qualcosa') } const ottieni_url = (indirizzo) => { }; const cancella_url = (id, id_array, key) => { } function Cambia_nome_allegati() { if (props.elenco_pdf !== undefined) { if (props.elenco_pdf.length > 0) { return <strong> Allegati </strong> } } return <strong> ||| </strong> } const handleSelect=(e)=>{ console.log(e); if (e === "Cancella_Domanda") {cancellazione_domanda()} if (e === "Modifica_Domanda") {setShow_edit_domanda(true)} } function cancellazione_domanda(e) { } return ( |
1 2 3 | ) } export default Gestione_menu_alto_destra; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import React, { useState } from 'react'; //import './navbar.css'; import { Link } from "react-router-dom" import { Dropdown, DropdownButton, Accordion, Card, Button, Modal, Form } from 'react-bootstrap'; import { BsFillFileEarmarkPlusFill } from "react-icons/bs"; const Upload_files_mp3 = () => { // const [somma, calcola_somma] = useState(''); const [show, setShow] = useState(false); const Chiusura_della_finestra_modale = () => { setShow(false); } const apertura_finestra_modale = () => { setShow(true) } return ( <> Edit |
AXIOS
1 2 3 | <button> Chiusura_della_finestra_modale()}> Annulla </button> <button> Chiusura_della_finestra_modale()}>Salva</button> |
1 2 3 | ) } export default Upload_files_mp3; |
1 2 3 4 5 6 7 8 9 10 11 | const nuovi_indici = { indice_end: indice_end, indice_aux: -indice_end - 1, indice_now: -indice_end } axios.patch('/domande/modifica_indici/' + props.item._id, nuovi_indici) .then((res) => { console.log(res.data) }).catch((error) => { console.log(error) }); |
Fare una chiamata con axios e aspettare la risposta per poter fare altre cose
Serve una funzione asincroina
1 2 3 4 5 6 | axios.patch('/classi/classe_modifica/' + props.id, input) .then((res) => { console.log(res.data) }).catch((error) => { console.log(error) }); |
UPLOAD E LETTURA DI UN FILE
La variabile fileReader viene in pratica dichiarata come globale
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | axios.get('/domande/carica_tutte_sort_old/', { params: { id_utente: id_utente, ordine_visualizzazione: ordine_visualizzazione, solo_mp3: input_opzioni.solo_mp3, show_nomat: input_opzioni.show_nomat, scelta_query: input_opzioni.scelta_query, lista_materie: JSON.stringify(lista_materie_caricate_da_mongo) } }).then((res) => { SET_max_indice_aux(lista_domande[0].indice_aux) crea_lista_stornati(res.data, lista_materie_caricate_da_mongo) }).catch((error) => { console.log(error) }); |
handleFileChosen(e.target.files[0])} />
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | const Invia_file_al_bucket_S3 = async event => { // const result = await salva_file_server_s3({ image: file, description }) // event.preventDefault() console.log('INVIA AL BUCKET') console.log('salva' + props.salva) console.log('key' + props.key) /* axios.post('/transfer_s3/file_jpg_cancella/' + props.item.indirizzo_S3_immagine_domanda.key) .then((res) => { console.log('Cancellato un file pdf') }).catch((error) => { console.log('errore nella richiesta') console.log(error) }); */ const formData = new FormData(); formData.append("image", file) formData.append("description", description) const result = await axios.post('/transfer_s3/file_jpg', formData, { headers: { 'Content-Type': 'multipart/form-data' } }) console.log('tornato nel front end') console.log(result) // set_key_aws (result.data.key) console.log(file) console.log(file.name) const nuova_immagine_s3 = { key: result.data.key, descrizione: 'descrizione' } if (props.salva === "domanda") { axios.patch('/domande/modifica_immagine_domanda_S3/' + props.item._id, nuova_immagine_s3) .then((res) => { console.log(res.data) // props.SET_cambio_stato(!props.cambio_stato) }).catch((error) => { console.log(error) }); } if (props.salva === "multipla") { axios.patch('/domande/aggiorna_risposta_multipla_key/' + props.item._id + '/' + props.indice + '/' + result.data.key) .then((res) => { console.log(res.data) }).catch((error) => { console.log(error) }); } } |