
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
@knocklabs/expo
Advanced tools
A set of components for integrating Knock in-app notifications into an Expo + React Native application.
Not using Expo? See our vanilla React Native SDK.
Via NPM:
npm install @knocklabs/expo
Via Yarn:
yarn add @knocklabs/expo
@knocklabs/react-native
As of @knocklabs/react-native
v0.4.0, KnockExpoPushNotificationProvider
has moved to our Expo SDK. To migrate:
Remove @knocklabs/react-native
from your project
NPM:
npm uninstall @knocklabs/react-native
Yarn:
yarn remove @knocklabs/react-native
Install @knocklabs/expo
NPM:
npm install @knocklabs/expo
Yarn:
yarn add @knocklabs/expo
Update any import statements from @knocklabs/react-native
to @knocklabs/expo
From:
import {
KnockExpoPushNotificationProvider,
KnockFeedProvider,
KnockProvider,
NotificationIconButton,
} from "@knocklabs/react-native";
To:
import {
KnockExpoPushNotificationProvider,
KnockFeedProvider,
KnockProvider,
NotificationIconButton,
} from "@knocklabs/expo";
To configure the feed you will need:
You can integrate the feed into your app as follows:
import {
KnockFeedProvider,
KnockProvider,
NotificationFeedContainer,
} from "@knocklabs/expo";
const YourAppLayout = () => {
const [isVisible, setIsVisible] = useState(false);
const notifButtonRef = useRef(null);
return (
<KnockProvider apiKey={process.env.KNOCK_PUBLIC_API_KEY} userId={userId}>
<KnockFeedProvider feedId={process.env.KNOCK_FEED_ID}>
<NotificationFeedContainer>
<Text>Notifications go in here!</Text>
</NotificationFeedContainer>
</KnockFeedProvider>
</KnockProvider>
);
};
Alternatively, if you don't want to use our components you can render the feed in a headless mode using our hooks:
import { useAuthenticatedKnockClient, useNotifications } from "@knocklabs/expo";
import create from "zustand";
const YourAppLayout = () => {
const knockClient = useAuthenticatedKnockClient(
process.env.KNOCK_PUBLIC_API_KEY,
currentUser.id,
);
const notificationFeed = useNotifications(
knockClient,
process.env.KNOCK_FEED_ID,
);
const useNotificationStore = create(notificationFeed.store);
const { metadata } = useNotificationStore();
useEffect(() => {
notificationFeed.fetch();
}, [notificationFeed]);
return <Text>Total unread: {metadata.unread_count}</Text>;
};
FAQs
Unknown package
We found that @knocklabs/expo demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.