This commit is contained in:
Shusui MOYATANI
2023-03-18 14:22:25 +09:00
parent fd7da8ad7c
commit 4f10489d19
6 changed files with 18 additions and 20 deletions

View File

@@ -6,13 +6,13 @@ type ConfigProps = {
};
const RelayConfig = () => {
const { config, setConfig, addRelay, removeRelay } = useConfig();
const { config, addRelay, removeRelay } = useConfig();
const [relayUrlInput, setRelayUrlInput] = createSignal<string>('');
const handleClickAddRelay: JSX.EventHandler<HTMLFormElement, Event> = (ev) => {
ev.preventDefault();
if (relayUrlInput().length > 0) return;
if (relayUrlInput().length === 0) return;
addRelay(relayUrlInput());
setRelayUrlInput('');
};

View File

@@ -44,7 +44,7 @@ const Reaction: Component<ReactionProps> = (props) => {
</Switch>
</div>
<div class="notification-user flex gap-1">
<div class="author-icon h-5 w-5 shrink-0">
<div class="author-icon h-5 w-5 shrink-0 overflow-hidden object-cover">
<Show when={profile()?.picture != null}>
<img
src={profile()?.picture}

View File

@@ -146,7 +146,7 @@ const TextNoteDisplay: Component<TextNoteDisplayProps> = (props) => {
return (
<div class="nostr-textnote flex flex-col">
<div class="flex w-full gap-1">
<div class="author-icon h-10 w-10 shrink-0">
<div class="author-icon h-10 w-10 shrink-0 overflow-hidden object-cover">
<Show when={author()?.picture}>
{/* TODO 画像は脆弱性回避のためにimgじゃない方法で読み込みたい */}
<img

View File

@@ -14,7 +14,7 @@ type UsePersistStatus = {
loggedIn: () => void;
};
const InitialLoginStatus = {
const InitialPersistStatus = {
loggedIn: false,
agreeWithNostrBuild: false,
};
@@ -25,25 +25,21 @@ const deserializer = (json: string): PersistStatus => JSON.parse(json) as Persis
const storage = createStorageWithSerializer(() => window.localStorage, serializer, deserializer);
const [persistStatus, setLoginStatus] = createSignalWithStorage(
'RabbitLoginStatus',
InitialLoginStatus,
const [persistStatus, setPersistStatus] = createSignalWithStorage(
'RabbitPersistStatus',
InitialPersistStatus,
storage,
);
const usePersistStatus = (): UsePersistStatus => {
const loggedIn = () => {
setLoginStatus((current) => ({ ...current, loggedIn: true }));
setPersistStatus((current) => ({ ...current, loggedIn: true }));
};
return {
persistStatus: () => ({
get loggedIn() {
return persistStatus().loggedIn ?? false;
},
get agreeWithNostrBuild() {
return persistStatus().agreeWithNostrBuild ?? false;
},
...InitialPersistStatus,
...persistStatus(),
}),
loggedIn,
};

View File

@@ -20,7 +20,7 @@ type UseConfig = {
const InitialConfig: Config = {
relayUrls: [
'wss://relay-jp.nostr.wirednet.jp',
'wss://nostr.h3z.jp/',
'wss://nostr.h3z.jp',
'wss://relay.damus.io',
'wss://nos.lol',
'wss://relay.snort.social',
@@ -55,7 +55,12 @@ const useConfig = (): UseConfig => {
}));
};
return { config, setConfig, addRelay, removeRelay };
return {
config: () => ({ ...InitialConfig, ...config() }),
setConfig,
addRelay,
removeRelay,
};
};
export default useConfig;

View File

@@ -1,8 +1,5 @@
const domains = ['i.imgur.com', 'imgur.com', 'i.gyazo.com'];
export const isImageUrl = (url: URL): boolean => {
if (url.pathname.match(/\.(jpeg|jpg|png|gif|webp)$/i)) return true;
if (domains.includes(url.host)) return true;
return false;
};