This commit is contained in:
parent
0e9ca7e2e3
commit
9f731da5be
@ -8,7 +8,18 @@ import useEventPublisher from "Hooks/useEventPublisher";
|
||||
import { getMutedKeys } from "Feed/MuteList";
|
||||
import useModeration from "Hooks/useModeration";
|
||||
import useLogin from "Hooks/useLogin";
|
||||
import { SnortAppData, addSubscription, setAppData, setBlocked, setBookmarked, setFollows, setMuted, setPinned, setRelays, setTags } from "Login";
|
||||
import {
|
||||
SnortAppData,
|
||||
addSubscription,
|
||||
setAppData,
|
||||
setBlocked,
|
||||
setBookmarked,
|
||||
setFollows,
|
||||
setMuted,
|
||||
setPinned,
|
||||
setRelays,
|
||||
setTags,
|
||||
} from "Login";
|
||||
import { SnortPubKey } from "Const";
|
||||
import { SubscriptionEvent } from "Subscription";
|
||||
import useRelaysFeedFollows from "./RelaysFeedFollows";
|
||||
@ -104,9 +115,8 @@ export default function useLoginFeed() {
|
||||
if (appData) {
|
||||
publisher.decryptGeneric(appData.content, appData.pubkey).then(d => {
|
||||
setAppData(login, JSON.parse(d) as SnortAppData, appData.created_at * 1000);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}, [loginFeed, publisher]);
|
||||
|
||||
|
@ -76,6 +76,6 @@ export default function useModeration() {
|
||||
unblock,
|
||||
isBlocked,
|
||||
isMutedWord,
|
||||
isEventMuted
|
||||
isEventMuted,
|
||||
};
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ export enum LoginSessionType {
|
||||
}
|
||||
|
||||
export interface SnortAppData {
|
||||
mutedWords: Array<string>
|
||||
mutedWords: Array<string>;
|
||||
}
|
||||
|
||||
export interface LoginSession {
|
||||
|
@ -48,7 +48,7 @@ const LoggedOut = {
|
||||
subscriptions: [],
|
||||
appData: {
|
||||
item: {
|
||||
mutedWords: []
|
||||
mutedWords: [],
|
||||
},
|
||||
timestamp: 0,
|
||||
},
|
||||
|
@ -12,33 +12,47 @@ export function ModerationSettings() {
|
||||
function addMutedWord() {
|
||||
login.appData ??= {
|
||||
item: {
|
||||
mutedWords: []
|
||||
mutedWords: [],
|
||||
},
|
||||
timestamp: 0
|
||||
timestamp: 0,
|
||||
};
|
||||
setAppData(login, {
|
||||
setAppData(
|
||||
login,
|
||||
{
|
||||
...login.appData.item,
|
||||
mutedWords: appendDedupe(login.appData.item.mutedWords, [muteWord])
|
||||
}, unixNowMs());
|
||||
mutedWords: appendDedupe(login.appData.item.mutedWords, [muteWord]),
|
||||
},
|
||||
unixNowMs(),
|
||||
);
|
||||
setMuteWord("");
|
||||
}
|
||||
return <>
|
||||
return (
|
||||
<>
|
||||
<h2>
|
||||
<FormattedMessage defaultMessage="Muted Words" />
|
||||
</h2>
|
||||
<div className="flex-column g12">
|
||||
<div className="flex g8">
|
||||
<input type="text" placeholder="eg. crypto" className="w-max" value={muteWord} onChange={e => setMuteWord(e.target.value)} />
|
||||
<input
|
||||
type="text"
|
||||
placeholder="eg. crypto"
|
||||
className="w-max"
|
||||
value={muteWord}
|
||||
onChange={e => setMuteWord(e.target.value)}
|
||||
/>
|
||||
<button type="button" onClick={addMutedWord}>
|
||||
<FormattedMessage defaultMessage="Add" />
|
||||
</button>
|
||||
</div>
|
||||
{login.appData.item.mutedWords.map(v => <div className="p br b flex f-space">
|
||||
{login.appData.item.mutedWords.map(v => (
|
||||
<div className="p br b flex f-space">
|
||||
<div>{v}</div>
|
||||
<button type="button">
|
||||
<FormattedMessage defaultMessage="Delete" />
|
||||
</button>
|
||||
</div>)}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
}
|
@ -150,7 +150,7 @@
|
||||
"GUlSVG": "Beanspruche deine enthaltene Snort Nostr-Adresse",
|
||||
"Gcn9NQ": "Magnet Link",
|
||||
"GspYR7": "{n} Gefällt nicht",
|
||||
"Gxcr08": "Broadcast Event",
|
||||
"Gxcr08": "Event verbreiten",
|
||||
"H+vHiz": "Hex-Schlüssel...",
|
||||
"H0JBH6": "Abmelden",
|
||||
"H6/kLh": "Bestellung bezahlt!",
|
||||
@ -186,7 +186,7 @@
|
||||
"KoFlZg": "Mint-URL eingeben",
|
||||
"KtsyO0": "PIN eingeben",
|
||||
"LF5kYT": "Weitere Verbindungen",
|
||||
"LR1XjT": "Pin too short",
|
||||
"LR1XjT": "PIN zu kurz",
|
||||
"LXxsbk": "Anonym",
|
||||
"LgbKvU": "Kommentar",
|
||||
"Lu5/Bj": "In Zapstr öffnen",
|
||||
@ -437,12 +437,12 @@
|
||||
"vOKedj": "{n,plural,one {}=1{& {n} anderer} other{& {n} andere}}",
|
||||
"vZ4quW": "NIP-05 ist eine DNS-basierte Verifizierungsspezifikation, die dabei hilft, dich als echten Benutzer zu validieren.",
|
||||
"vhlWFg": "Umfrageoptionen",
|
||||
"vlbWtt": "Erhalte eine kostenlos",
|
||||
"vlbWtt": "Eine kostenlos erhalten",
|
||||
"vrTOHJ": "{amount} sats",
|
||||
"vxwnbh": "Maß an Arbeit, die auf alle veröffentlichte Events angewendet werden soll",
|
||||
"wEQDC6": "Anpassen",
|
||||
"wLtRCF": "Dein Schlüssel",
|
||||
"wSZR47": "Submit",
|
||||
"wSZR47": "Absenden",
|
||||
"wWLwvh": "Anon",
|
||||
"wYSD2L": "Nostr-Adresse",
|
||||
"wih7iJ": "Name ist blockiert",
|
||||
|
@ -1,27 +1,27 @@
|
||||
{
|
||||
"+D82kt": "Вы уверены, что хотите сделать репост: {id}",
|
||||
"+PzQ9Y": "Payout Now",
|
||||
"+Vxixo": "Secret Group Chat",
|
||||
"+PzQ9Y": "Выплатить сейчас",
|
||||
"+Vxixo": "Секретный групповой чат",
|
||||
"+aZY2h": "Тип запа",
|
||||
"+tShPg": "following",
|
||||
"+tShPg": "подписки",
|
||||
"+vA//S": "Логины",
|
||||
"+vIQlC": "Пожалуйста, обязательно сохраните следующий пароль, чтобы в будущем управлять своим хэндлом",
|
||||
"+vVZ/G": "Подключиться",
|
||||
"+xliwN": "{name} reposted",
|
||||
"+xliwN": "{name} сделал репост",
|
||||
"/4tOwT": "Пропустить",
|
||||
"/JE/X+": "Поддержка аккаунта",
|
||||
"/PCavi": "Публичный",
|
||||
"/RD0e2": "Nostr использует технологию цифровой подписи для создания защищенных от несанкционированного доступа заметок, которые можно безопасно копировать на множество релеев, обеспечивая резервное хранение Вашего контента.",
|
||||
"/Xf4UW": "Send anonymous usage metrics",
|
||||
"/Xf4UW": "Отправлять показатели анонимного использования",
|
||||
"/d6vEc": "Упростить поиск и распространение вашего профиля в Nostr",
|
||||
"/n5KSF": "{n} мс",
|
||||
"00LcfG": "Load more",
|
||||
"00LcfG": "Загрузить больше",
|
||||
"08zn6O": "Экспортировать ключи",
|
||||
"0Azlrb": "Управление",
|
||||
"0BUTMv": "Поиск...",
|
||||
"0jOEtS": "Неверный LNURL",
|
||||
"0mch2Y": "имя содержит запрещенные символы",
|
||||
"0uoY11": "Show Status",
|
||||
"0uoY11": "Показать статус",
|
||||
"0yO7wF": "{n} секунд",
|
||||
"1A7TZk": "Что такое Snort и как он работает?",
|
||||
"1Mo59U": "Вы уверены, что хотите удалить эту заметку из закладок?",
|
||||
@ -37,7 +37,7 @@
|
||||
"2a2YiP": "{n} Закладок",
|
||||
"2k0Cv+": "Дизлайки ({n})",
|
||||
"2ukA4d": "{n} часов",
|
||||
"3KNMbJ": "Articles",
|
||||
"3KNMbJ": "Статьи",
|
||||
"3Rx6Qo": "Продвинутые",
|
||||
"3cc4Ct": "Светлый",
|
||||
"3gOsZq": "Переводчики",
|
||||
@ -46,7 +46,7 @@
|
||||
"3tVy+Z": "{n} Подписчиков",
|
||||
"3xCwbZ": "ИЛИ",
|
||||
"3yk8fB": "Кошелек",
|
||||
"40VR6s": "Nostr Connect",
|
||||
"40VR6s": "Подключение Nostr",
|
||||
"450Fty": "Ничьи",
|
||||
"47FYwb": "Отменить",
|
||||
"4IPzdn": "Основные разработчики",
|
||||
@ -61,14 +61,14 @@
|
||||
"5oTnfy": "Приобрести хэндл",
|
||||
"5rOdPG": "После того как Вы настроили расширение для управления ключами и сгенерировали ключ, Вы можете последовать нашему гиду для новичков, чтобы настроить свой профиль и найти интересных людей, заслуживающих подписки на Nostr.",
|
||||
"5u6iEc": "Перевести на Pubkey",
|
||||
"5vMmmR": "Usernames are not unique on Nostr. The nostr address is your unique human-readable address that is unique to you upon registration.",
|
||||
"5vMmmR": "Имя пользователя не является уникальным на Nostr. Nostr адрес - это ваш уникальный человеко читаемый адрес, который уникален для вас при регистрации.",
|
||||
"5ykRmX": "Отправить зап",
|
||||
"6/SF6e": "<h1>{n}</h1> Cashu sats",
|
||||
"6/hB3S": "Watch Replay",
|
||||
"6/hB3S": "Смотреть повтор",
|
||||
"65BmHb": "Не удалось загрузить изображение через {host}, нажмите здесь, чтобы загрузить напрямую",
|
||||
"6OSOXl": "Reason: <i>{reason}</i>",
|
||||
"6OSOXl": "Причина: <i>{reason}</i>",
|
||||
"6Yfvvp": "Получите адрес",
|
||||
"6bgpn+": "Not all clients support this, you may still receive some zaps as if zap splits was not configured",
|
||||
"6bgpn+": "Не все клиенты поддерживают это, вы все равно можете получить некоторые запы, как если бы запределение не было настроено",
|
||||
"6ewQqw": "Лайки ({n})",
|
||||
"6uMqL1": "Не оплачено",
|
||||
"7+Domh": "Заметки",
|
||||
@ -76,13 +76,13 @@
|
||||
"7hp70g": "NIP-05",
|
||||
"8/vBbP": "Репосты ({n})",
|
||||
"89q5wc": "Подтверждать репосты",
|
||||
"8Kboo2": "Scan this QR code with your signer app to get started",
|
||||
"8Kboo2": "Отсканируйте этот QR код с вашим приложением для регистрации, чтобы начать",
|
||||
"8QDesP": "Запнуть {n} сат",
|
||||
"8Rkoyb": "Recipient",
|
||||
"8Y6bZQ": "Invalid zap split: {input}",
|
||||
"8Rkoyb": "Получатель",
|
||||
"8Y6bZQ": "Неверный zap сплит: {input}",
|
||||
"8g2vyB": "имя слишком длинное",
|
||||
"8v1NN+": "Фраза для сопряжения",
|
||||
"8xNnhi": "Nostr Extension",
|
||||
"8xNnhi": "Расширение Nostr",
|
||||
"9+Ddtu": "Далее",
|
||||
"9HU8vw": "Ответить",
|
||||
"9SvQep": "Подписан(а) на {n}",
|
||||
@ -91,7 +91,7 @@
|
||||
"9pMqYs": "Nostr адрес",
|
||||
"9wO4wJ": "Лайтнинг-инвойс",
|
||||
"ADmfQT": "Ветка",
|
||||
"AGNz71": "Zap All {n} sats",
|
||||
"AGNz71": "Зап Все {n} sats",
|
||||
"ASRK0S": "Этот автор был заглушен",
|
||||
"Adk34V": "Настройте свой профиль",
|
||||
"Ai8VHU": "Снятие ограничения срока хранения ваших заметок на релее Snort",
|
||||
@ -108,7 +108,7 @@
|
||||
"BcGMo+": "Заметки содержат текст; наиболее популярное применение этих заметок - передача сообщений \"подобно твиттеру\".",
|
||||
"C5xzTC": "Premium",
|
||||
"C81/uG": "Выход",
|
||||
"C8HhVE": "Suggested Follows",
|
||||
"C8HhVE": "Предложенные подписки",
|
||||
"CHTbO3": "Не удалось загрузить инвойс",
|
||||
"CVWeJ6": "Популярные профили",
|
||||
"CmZ9ls": "{n} заглушен",
|
||||
@ -120,12 +120,12 @@
|
||||
"DZzCem": "Показать последние {n} заметки",
|
||||
"DcL8P+": "Саппортер",
|
||||
"Dh3hbq": "Авто Зап",
|
||||
"Dn82AL": "Live",
|
||||
"Dn82AL": "Прямой эфир",
|
||||
"DtYelJ": "Перевод",
|
||||
"E8a4yq": "Подпишитесь на популярные аккаунты",
|
||||
"ELbg9p": "Data Providers",
|
||||
"ELbg9p": "Данные провайдера",
|
||||
"EPYwm7": "Ваш приватный ключ - это Ваш пароль. Если Вы потеряете этот ключ, вы потеряете доступ к своей учетной записи! Скопируйте и сохраните его в надежном месте. Восстановить приватный ключ невозможно.",
|
||||
"EQKRE4": "Show badges on profile pages",
|
||||
"EQKRE4": "Показывать значки на страницах профиля",
|
||||
"EWyQH5": "Глобальная лента",
|
||||
"Ebl/B2": "Перевести на {lang}",
|
||||
"EcZF24": "Кастомные релеи",
|
||||
@ -135,9 +135,9 @@
|
||||
"F+B3x1": "Мы также сотрудничаем с nostrplebs.com, чтобы предоставить Вам больше возможностей",
|
||||
"F3l7xL": "Добавить аккаунт",
|
||||
"FDguSC": "{n} Запов",
|
||||
"FMfjrl": "Show status messages on profile pages",
|
||||
"FMfjrl": "Показывать статусные сообщения на страницах профиля",
|
||||
"FS3b54": "Готово!",
|
||||
"FSYL8G": "Trending Users",
|
||||
"FSYL8G": "Трендовые пользователи",
|
||||
"FdhSU2": "Получить сейчас",
|
||||
"FfYsOb": "Произошла ошибка!",
|
||||
"FmXUJg": "подписан(а) на Вас",
|
||||
@ -145,24 +145,24 @@
|
||||
"G1BGCg": "Выберите кошелек",
|
||||
"GFOoEE": "Соль",
|
||||
"GL8aXW": "Закладки ({n})",
|
||||
"GQPtfk": "Join Stream",
|
||||
"GSye7T": "Lightning Address",
|
||||
"GQPtfk": "Присоединиться к стриму",
|
||||
"GSye7T": "Lightning Адрес",
|
||||
"GUlSVG": "Получите Nostr адрес от Snort",
|
||||
"Gcn9NQ": "Magnet-ссылка",
|
||||
"GspYR7": "{n} Дизлайк",
|
||||
"Gxcr08": "Broadcast Event",
|
||||
"Gxcr08": "Трансляция события",
|
||||
"H+vHiz": "Hex ключа..",
|
||||
"H0JBH6": "Выйти",
|
||||
"H6/kLh": "Заказ оплачен!",
|
||||
"HAlOn1": "Имя",
|
||||
"HFls6j": "имя будет доступно позже",
|
||||
"HOzFdo": "Заглушен",
|
||||
"HWbkEK": "Clear cache and reload",
|
||||
"HWbkEK": "Очистить кэш и перезагрузить",
|
||||
"HbefNb": "Открыть кошелек",
|
||||
"HhcAVH": "You don't follow this person, click here to load media from <i>{link}</i>, or update <a><i>your preferences</i></a> to always load media from everybody.",
|
||||
"HhcAVH": "Вы не подписаны на этого человека, нажмите здесь, чтобы загрузить медиа из <i>{link}</i>, или обновите <a><i>ваши предпочтения</i></a> чтобы всегда загружать медиа от всех.",
|
||||
"IDjHJ6": "Спасибо, что выбрали Snort, пожалуйста, поддержите проект, если это возможно.",
|
||||
"IEwZvs": "Вы уверены, что хотите открепить эту заметку?",
|
||||
"IKKHqV": "Follows",
|
||||
"IKKHqV": "Подписки",
|
||||
"INSqIz": "Имя пользователя в Twitter...",
|
||||
"IUZC+0": "Это означает, что никто не может изменить созданные Вами заметки, и каждый может легко убедиться, что увиденные ими заметки созданы Вами.",
|
||||
"Ig9/a1": "Sent {n} sats to {name}",
|
||||
|
Loading…
Reference in New Issue
Block a user