Feat: Sync entre addRessources et gestionRessources
This commit is contained in:
@@ -10,10 +10,11 @@ import { FlatList, Image, StyleSheet, Text, View } from "react-native";
|
||||
import { Ressources } from "../../class/class";
|
||||
import { getRessources } from "../../services/ressourcesService";
|
||||
import SelectChantier from "@/components/selectChantier";
|
||||
import { useRessources } from "../ContextRessource";
|
||||
|
||||
export default function GestionnaireRessource() {
|
||||
const [search, setSearch] = useState("");
|
||||
const [ressource, setRessources] = useState<Ressources[]>([]);
|
||||
const {ressources, setRessources} = useRessources();
|
||||
const [filterType, setFilterType] = useState("tout");
|
||||
const [showFilterMenu, setShowFilterMenu] = useState(false);
|
||||
const router = useRouter();
|
||||
@@ -30,7 +31,7 @@ export default function GestionnaireRessource() {
|
||||
loadData();
|
||||
}, []);
|
||||
|
||||
const filteredData = ressource.filter((r) => {
|
||||
const filteredData = ressources.filter((r) => {
|
||||
const matchName = r.name.toLowerCase().includes(search.toLowerCase());
|
||||
const matchType = filterType === "tout" || r.type === filterType;
|
||||
return matchName && matchType;
|
||||
|
||||
@@ -24,7 +24,7 @@ export type User = {
|
||||
};
|
||||
|
||||
export type Ressources = {
|
||||
id: number;
|
||||
id: string;
|
||||
name: string;
|
||||
type: string; //"machine","ouvrier"
|
||||
Image: string;
|
||||
|
||||
@@ -9,7 +9,7 @@ import { StyleSheet, ScrollView, Button, TextInput, Text, View, Modal } from 're
|
||||
import { useChantier } from '@/app/ContextChantier';
|
||||
import { useRessources } from '@/app/ContextRessource';
|
||||
import { useUser } from '@/app/ContextUser';
|
||||
import { getRessources, getUsers, addChantier } from '@/services/ressourcesService';
|
||||
import { getRessources, getUsers, addChantier , addRessources} from '@/services/ressourcesService';
|
||||
import { Chantier, Ressources, User } from '@/class/class';
|
||||
import { ThemedText } from '@/components/theme/themed-text';
|
||||
import { ThemedButton } from '@/components/theme/themed-button';
|
||||
@@ -58,12 +58,32 @@ export default function AddRessource({ressourceType, ...otherProps }: Props) {
|
||||
}
|
||||
|
||||
async function onConfirm(): Promise<void> {
|
||||
//TODO
|
||||
//await changeChantierStatus(chantier.id,tempStatus)
|
||||
//Il faut changer le UX
|
||||
//setChantier({...chantier,etat: tempStatus})
|
||||
if(isValidRessource()){
|
||||
try{
|
||||
setLoading(true);
|
||||
const nouvelleRessource : Ressources = {
|
||||
id : '',
|
||||
name: nom,
|
||||
type : ressourceType,
|
||||
quantity : parseInt(quantite),
|
||||
available_quantity : parseInt(quantite),
|
||||
Image : "",
|
||||
allocation : [],
|
||||
};
|
||||
const id = await addRessources(nouvelleRessource);
|
||||
|
||||
if(id){
|
||||
setRessources([...ressources,{...nouvelleRessource, id}]);
|
||||
setOpenConfirmation(false);
|
||||
setNom('');
|
||||
setQuantite('');
|
||||
setQuantiteDisponible('');
|
||||
}
|
||||
}catch(error){
|
||||
}finally{
|
||||
setOpenConfirmation(false);
|
||||
setLoading(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +91,7 @@ export default function AddRessource({ressourceType, ...otherProps }: Props) {
|
||||
setOpenConfirmation(false);
|
||||
}
|
||||
function isValidRessource():Boolean{
|
||||
return nom!= "" && quantite != "" && quantiteDisponible != ""
|
||||
return nom!= "" && quantite != ""
|
||||
}
|
||||
|
||||
const renderValidationScreen = () => {
|
||||
@@ -98,8 +118,7 @@ export default function AddRessource({ressourceType, ...otherProps }: Props) {
|
||||
</View>
|
||||
</Modal>
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const renderInut = (name : string, preFill : string, value : string, setValue : ((text:string) => void),numeric:boolean) => {
|
||||
return (
|
||||
|
||||
@@ -37,6 +37,19 @@ export async function getRessources(): Promise<Ressources[]> {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
//ADD RESSOURCES
|
||||
export async function addRessources(ressourceData: Omit<Ressources, 'id'>): Promise<string | null> {
|
||||
try {
|
||||
const colRef = collection(db, "ressources");
|
||||
const ressourcesRef = await addDoc(colRef, ressourceData);
|
||||
console.log(`Ressource ajoutée avec ID: ${ressourcesRef.id}`);
|
||||
return ressourcesRef.id;
|
||||
} catch (err) {
|
||||
console.error("Error adding:", err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
///////////////////////////////////CHANTIER/////////////////////////////////
|
||||
export async function getChantiers(): Promise<Chantier[]> {
|
||||
const snap = await getDocs(collection(db, "chantier"));
|
||||
|
||||
Reference in New Issue
Block a user