
Product
Introducing Socket Firewall Enterprise: Flexible, Configurable Protection for Modern Package Ecosystems
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.
@iiif/thumbnail-panel
Advanced tools
[Demo](https://thumbnail-panel.netlify.app/) | [Code Sandbox](https://codesandbox.io/dashboard/repositories/github/IIIF-Commons/thumbnail-panel)
npm i @iiif/thumbnail-panel
To start a local development environment, clone the repo, and run:
yarn install
yarn start
A consuming environment for developing is available via the src/dev.tsx component.
The app will export React components, and also a vanilla JavaScript bundled version (coming soon).
The ThumbnailPanel component can be used in a controlled or uncontrolled way. What is controlled vs uncontrolled?.
import { ThumbnailPanel } from "@iiif/thumbnail-panel";
// Somewhere here you'll have to keep track of which
// "resource" is "active". Handle user events and
// continually pass in whichever resourceId you want
// to be active.
...
<ThumbnailPanel
currentResourceId="someResourceId"
iiifContent="https://iiif-commons.github.io/fixtures/examples/thumbnail_panel/non_paged_at_end/v2/manifest.json"
onResourceChanged={(resourceId?: string) => {
console.log("resourceId", resourceId);
// Now you can pass around the current thumbnail item to
// other parts of your app which need to know about it.
}}
orientation="vertical"
/>
import { ThumbnailPanel } from "@iiif/thumbnail-panel";
function MyApp() {
...
return (
<ThumbnailPanel
iiifContent="https://iiif-commons.github.io/fixtures/examples/thumbnail_panel/non_paged_at_end/v2/manifest.json"
onResourceChanged={(resourceId?: string) => console.log("resourceId", resourceId)}
orientation="vertical"
>
<Nav />
</ThumbnailPanel>
)
}
function Nav() {
const { isEnd, isStart, next, prev } = useThumbnailPanelContext();
const { handleNextClick, resourceId: nextResourceId } = next;
const { handlePrevClick, resourceId: prevResourceId } = prev;
return (
<>
<button onClick={handlePrevClick} disabled={isStart} data-id={prevResourceId}>
Prev
</button>
<button onClick={handleNextClick} disabled={isEnd} data-id={nextResourceId}>
Next
</button>
</>
);
}
Helper hook, details coming soon...
Checkout the main branch, and ensure it is up-to-date.
Run npm version [major | minor | patch] for example:
npm version patch
This will update the package.json version and create a git tag. Then push both the main/tag.
git push origin main v0.0.8
Then the GitHub action will pick up the tag and publish it to NPM :tada:
FAQs
[Demo](https://thumbnail-panel.netlify.app/) | [Code Sandbox](https://codesandbox.io/dashboard/repositories/github/IIIF-Commons/thumbnail-panel)
We found that @iiif/thumbnail-panel demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 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.

Product
Socket Firewall Enterprise is now available with flexible deployment, configurable policies, and expanded language support.

Security News
Open source dashboard CNAPulse tracks CVE Numbering Authorities’ publishing activity, highlighting trends and transparency across the CVE ecosystem.

Product
Detect malware, unsafe data flows, and license issues in GitHub Actions with Socket’s new workflow scanning support.