const fetchNotifications = useCallback(() => {
const headlessService = headlessServiceRef.current;
if (!headlessService) return;
headlessService.fetchNotifications({
listener: ({ data, error, isError, isFetching, isLoading, status }) => {
console.log({ data, error, isError, isFetching, isLoading, status });
},
onSuccess: (response: IPaginatedResponse<IMessage>) => {
console.log({
notifications: response,
});
setNotifications(response.data);
},
page: 1, // page number to be fetched
});
}, []);
useEffect(() => {
const headlessService = new HeadlessService({
applicationIdentifier: process.env.NEXT_PUBLIC_NOVU_APP_ID!,
subscriberId: localStorage.getItem("subscriberId")!,
});
headlessService.initializeSession({
listener: (res: FetchResult<ISession>) => {
headlessServiceRef.current = headlessService;
console.log(res);
},
onSuccess: (session: ISession) => {
fetchNotifications();
},
onError: (error) => {
console.error(error);
},
});
}, [fetchNotifications]);
const fetchNotifications = useCallback(() => {
const headlessService = headlessServiceRef.current;
if (!headlessService) return;
headlessService.fetchNotifications({
listener: ({ data, error, isError, isFetching, isLoading, status }) => {
console.log({ data, error, isError, isFetching, isLoading, status });
},
onSuccess: (response: IPaginatedResponse<IMessage>) => {
console.log({
notifications: response,
});
setNotifications(response.data);
},
page: 1, // page number to be fetched
});
}, []);
useEffect(() => {
const headlessService = new HeadlessService({
applicationIdentifier: process.env.NEXT_PUBLIC_NOVU_APP_ID!,
subscriberId: localStorage.getItem("subscriberId")!,
});
headlessService.initializeSession({
listener: (res: FetchResult<ISession>) => {
headlessServiceRef.current = headlessService;
console.log(res);
},
onSuccess: (session: ISession) => {
fetchNotifications();
},
onError: (error) => {
console.error(error);
},
});
}, [fetchNotifications]);