Git Product home page Git Product logo

use-lanyard's Introduction

use-lanyard

React hook for lanyard, an easy way to track your Discord presence through REST or WebSocket.

Features

  • Easy to use
  • Zero dependencies
  • TypeScript support
  • WebSocket support
  • Deduplicates network requests
import {useLanyard} from 'use-lanyard';

const DISCORD_ID = '268798547439255572';

export function Lanyard() {
	const {data} = useLanyard(DISCORD_ID);

	return <>...</>;
}

Server-side rendering / initial data

You can also provide initial data to the hook, which will be used until the client is hydrated/able to fetch the latest data.

const {data} = useLanyard(DISCORD_ID, {
	initialData: myInitialDataFromTheServer,
});

// Also works with the WebSocket hook
const data = useLanyardWS(DISCORD_ID, {
	initialData: myInitialDataFromTheServer,
});

Socket

There is also a hook for using the WebSocket that Lanyard provides, here's an example:

import {useLanyardWS} from 'use-lanyard';

const DISCORD_ID = '268798547439255572';

export function Lanyard() {
	const data = useLanyardWS(DISCORD_ID);

	return <>...</>;
}

Advanced usage

If you need access to the underlying response types in TypeScript, you can import them as follows.

// See src/types.ts for all types
import type {Data, Activity, LanyardResponse} from 'use-lanyard';

You can also customize the API endpoint that is used, if you wanted to self-host Lanyard.

export function Lanyard() {
	const {data} = useLanyard(DISCORD_ID, {
		api: {
			hostname: 'my-lanyard.app',

			// Tell the hook to use https/wss or http/ws
			secure: true,
		},
	});

	return <>...</>;
}

Acknowledgements

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.