mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-05-15 04:40:26 +02:00
668ce16dc7
Gate messages now propagate via the Infonet hashchain as encrypted blobs — every node syncs them through normal chain sync while only Gate members with MLS keys can decrypt. Added mesh reputation system, peer push workers, voluntary Wormhole opt-in for node participation, fork recovery, killwormhole scripts, obfuscated terminology, and hardened the self-updater to protect encryption keys and chain state during updates. New features: Shodan search, train tracking, Sentinel Hub imagery, 8 new intelligence layers, CCTV expansion to 11,000+ cameras across 6 countries, Mesh Terminal CLI, prediction markets, desktop-shell scaffold, and comprehensive mesh test suite (215 frontend + backend tests passing). Community contributors: @wa1id, @AlborzNazari, @adust09, @Xpirix, @imqdcr, @csysp, @suranyami, @chr0n1x, @johan-martensson, @singularfailure, @smithbh, @OrfeoTerkuci, @deuza, @tm-const, @Elhard1, @ttulttul
36 lines
699 B
TypeScript
36 lines
699 B
TypeScript
'use client';
|
|
|
|
import Image, { type ImageLoaderProps, type ImageProps } from 'next/image';
|
|
|
|
const passthroughLoader = ({ src }: ImageLoaderProps) => src;
|
|
|
|
type ExternalImageProps = Omit<ImageProps, 'loader'> & {
|
|
unoptimized?: boolean;
|
|
};
|
|
|
|
export default function ExternalImage({
|
|
unoptimized = true,
|
|
alt = '',
|
|
fill,
|
|
width,
|
|
height,
|
|
...rest
|
|
}: ExternalImageProps) {
|
|
if (fill) {
|
|
return (
|
|
<Image loader={passthroughLoader} unoptimized={unoptimized} fill alt={alt} {...rest} />
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Image
|
|
loader={passthroughLoader}
|
|
unoptimized={unoptimized}
|
|
width={width ?? 640}
|
|
height={height ?? 360}
|
|
alt={alt}
|
|
{...rest}
|
|
/>
|
|
);
|
|
}
|