Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@brightleaf/react-hooks
Advanced tools
Useful React Hooks
useFetch
- Hook to use FetchuseGet
- Hook to make a get requestusePost
- Hook to make an HTTP PostuseClickOutside
- Hook to handle a click outside an elementuseGraphQL
- Hook to make a GraphQL requestuseNes
- Hook to connect to Hapijs NESuseWebSockets
- Hook to interact with WebSocketsimport React, { useState } from 'react'
import { useGraphQL } from '@brightleaf/react-hooks'
export default () => {
const [id, setId] = useState(1)
const { data, loading, error } = useGraphQL(
'https://swapiql.herokuapp.com/graphql',
`query Person($id: ID) {
person(id: $id) {
id,
name
}
}`,
{ id }
)
if (loading) {
return <div>Loading Data</div>
}
if (error) {
return <div>Error getting graphql data</div>
}
return <div>{data.person[0].name}</div>
}
import React from 'react'
import { Button, Form, TextBox } from 'react-form-elements'
import { usePost } from '@brightleaf/react-hooks'
export default () => {
const { data, error, loading, postData } = usePost(
`https://kev-pi.herokuapp.com/api/echo`
)
if (loading) {
return <div>Loading Data</div>
}
if (error) {
return <div>Error getting graphql data</div>
}
return (
<Form
name="testForm"
onSubmit={data => {
postData(data)
}}
>
<TextBox label="My Label" name="myTextBox" />
<Button>Send</Button>
</Form>
)
}
import React, { useState } from 'react'
import { useGet } from '@brightleaf/react-hooks'
export default () => {
const [id, setId] = useState(1)
const { data, error, loading, getUrl } = useGet(
`https://swapiql.herokuapp.com/api/characters/${id}`
)
if (error) {
return (
<div className="App">
<h1>Error Getting Data</h1>
</div>
)
}
if (loading) {
return (
<div className="App">
<h1>Loading Data</h1>
</div>
)
}
return (
<div className="App">
<h1>{data[0].name}</h1>
<h2>Pick a number</h2>
<div className="select">
<div
onClick={e => {
getUrl('https://swapiql.herokuapp.com/api/characters/2')
}}
>
2
</div>
</div>
</div>
)
}
import React, { useState, useRef } from 'react'
import { useClickOutside } from '@brightleaf/react-hooks'
export default () => {
const [menu, setMenu] = useState(false)
const navMenu= useRef()
const hideDropDown = () => {
setMenu(false)
}
useClickOutside(navMenu, hideDropDowns, menu)
return (
<div className="App">
<nav ref={navMenu}>
<div className={`dropdown ${menu ? 'active' : ' '}`}>
<button
type="button"
className="dropdown-trigger"
onClick={e => {
setMenu(!menu)
}}
>
Menu
</button>
<div>
...// items
</div>
</div>
</nav>
... // rest of page
</div>
)
}
Client hook for connecting to an NES instance
import React from 'react'
import { useNes } from '@brightleaf/react-hooks'
export default () => {
const { message, error, connecting, connected } = useNes(
'wss://kev-pi.herokuapp.com'
)
if (error) {
return <div><h1>Error</h1></div>
}
const connectMessage = connecting ? <div>Connecting</div> : <div>Not Connecting</div>
const connectedMessage = connected ? <div>Connected</div> : <div>Not Connected</div>
const messages = message.map((m, index) => <div key={`key-${index}`}>{m}</div>)
return (
<div className="App">
<h1>Messages from Server</h1>
<div>{messages}</div>
<div>
<b>Status Messages</b>
{connectMessage}
{connectedMessage}
</div>
</div>
)
}
Use the client from the hook to create a real time chat room
import React, { useState} from 'react'
import { useNes } from '@brightleaf/react-hooks'
export default () => {
const { client } = useNes('wss://kev-pi.herokuapp.com')
const [messages, setMessages] = useState([{
body: 'welcome',
user: 'system'
}])
const addMessage = (msg) => {
messages.push(msg)
setMessages([...messages])
}
const handler = function(update, flags) {
addMessage(update)
}
// subscribe to a channel
client.subscribe('/rooms/general', handler);
const messageList = messages.map(({user, body}, index) => (<div key={`key-${index}`}><b>{user}:</b>{body}</div>))
return (
<div>
{messageList}
</div>
)
}
FAQs
Useful react hooks
The npm package @brightleaf/react-hooks receives a total of 7,336 weekly downloads. As such, @brightleaf/react-hooks popularity was classified as popular.
We found that @brightleaf/react-hooks demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.