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
- Update User Error
```ts const { users, databases } = await createAdminClient(); const session = await getLoggedInUser(); const user = await users.get(session.$id); if (!use...
- apple exchange code to token
hello guys, im new here π I have created a project and enabled apple oauth, filled all data (client id, key id, p8 file itself etc). I generate oauth code form...
- Our Appwrite organization is suspended
Please give support regarding this , no app is working now , please solve my issue and give support , no one is replying in message section or email.