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
- Missing Invoice
Hi! I need help with billing on my account (marelu@gmail.com). I have never received a single invoice by email. My organization has been on the Pro plan since...
- Appwrite Functions cold start
Hello. I'm seeing really long cold starts on Appwrite Cloud Functions and wanted to know if this is expected. My function just authenticates the user, fetches ...
- Error can not create `tablesdb` event wi...
When i'm trying to add an event with `tablesdb` i get an error message My event value: `tablesdb.mtg-decklist-dev.tables.queue_parsing.rows.*.create` Same err...