So right now, i'm following appwrite's doc in next js. The problem is this:
"use client";
import { useState } from "react";
import {Client, Account, ID, Databases, Permission, Role, Teams} from 'appwrite'
const conf = {
appwriteUrl: String(process.env.NEXT_PUBLIC_APPWRITE_URL),
appwriteProjectId: String(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID),
appwriteAPIKey: String(process.env.NEXT_PUBLUC_APPWRITE_API_KEY),
}
const appwriteClient = new Client()
.setEndpoint(conf.appwriteUrl)
.setProject(conf.appwriteProjectId);
export const account = new Account(appwriteClient)
export const databases = new Databases(appwriteClient);
const useAuth = () => {
const [loggedInUser, setLoggedInUser] = useState(null);
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [name, setName] = useState("");
const register = async () => {
try {
await account.create(ID.unique(), email, password, name);
return login(email, password);
} catch (error:any) {
console.log("register error" + error)
}
};
const login = async (email: string, password: string) => {
try {
return await account.createEmailPasswordSession(email, password);
const user = await account.get()
setLoggedInUser(user);
} catch (error:any) {
console.log("login error: " + error)
}
};
const currentuser = async () => {
try {
const user = await account.get()
return user
} catch (error:any) {
console.log("currentUser error: " + error)
}
};
const logout = async () => {
await account.deleteSession("current");
setLoggedInUser(null);
};
return {
register,
login,
logout,
currentuser,
email,
setEmail,
password,
setPassword,
name,
setName,
loggedInUser
};
};
export default useAuth;
i followed the doc
The type being used for loggedInUser is null here: const [loggedInUser, setLoggedInUser] = useState(null);
Try doing this instead:
const [loggedInUser, setLoggedInUser] = useState<User<Preferences> | null>(null);
User & Preferences gives an error, tried searching in the web but its showing that i should import "user" from appwrite but i dont think theres a "user" in the docs
Doing everything in scratch
Try setting the type to <Models.User<Preferences> | null> instead, I think that might how it's being exported from the Appwrite package
Recommended threads
- RowList: The value of total is coming as...
RowList: The value of total is coming as a String, so it throws an error because it’s not parsed into an int. Error: TypeError: \"37\": type 'String' is not a ...
- Docker Compose MongoDB Setup
everythings work fine but the mongodb fails on startup everytime. log: ``` Generating random MongoDB keyfile... /bin/bash: line 9: : No such file or directory ...
- Auth broken after update from 1.8.0 to 1...
So ive been having issues creating, deleting or updating users on my appwrite instance after i updated from 1.8.0 to version 1.9.0. When trying to create a user...