diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 2cbc4be79a66fc8190a474d28a39e2412b0e5392..7e02ba39fb3540fdac3fef73eaded7f38e2a1f01 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - node-version: [12.x, 14.x, 15.x] + node-version: [14.x, 16.x] services: postgres: diff --git a/.node-version b/.node-version index ab155ce138b843fb47d5ee901a7364f36de20646..c9b6b29e00b3b971df6c2367c20ef695db5f48c9 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -v14.15.5 +v16.0.0 diff --git a/Dockerfile b/Dockerfile index 067b772a426baa674e3d0ab6be2ea72239706e3d..ee4939b58cdb76b3d25a0e30e5595f8acc7ffe0d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:14.15.5-alpine3.13 AS base +FROM node:16.0.0-alpine3.13 AS base ENV NODE_ENV=production diff --git a/locales/en-US.yml b/locales/en-US.yml index f023409d5f799251e1bcdcb2bbcf4415d69e1f1c..57ce0c2ac94c1ffe10f2c1393ea1ebc594457d1d 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -339,7 +339,7 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "Enable reCAPTCHA" recaptchaSiteKey: "Site key" recaptchaSecretKey: "Secret key" -avoidMultiCaptchaConfirm: "Using multiple Captchas may cause interference. Would you like to disable the other Captcha? You can leave multiple Captchas enabled by press cancel." +avoidMultiCaptchaConfirm: "Using multiple Captchas may cause interferences. Would you like to disable the other Captcha? You can leave multiple Captchas enabled by pressing cancel." antennas: "Antennas" manageAntennas: "Manage Antennas" name: "Name" diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index 5500c3a3773685d06359e7fb2fd0622bd138deb0..35a97c14563520cd0ca31492046396ecca3a097d 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -486,7 +486,7 @@ objectStorageRegionDesc: "Spécifiez une région comme 'xx-east-1'. Si votre ser objectStorageUseSSL: "Utiliser SSL" objectStorageUseSSLDesc: "Désactivez cette option si vous n'utilisez pas HTTPS pour la connexion API" objectStorageUseProxy: "Se connecter via proxy" -objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas Proxy pour la connexion API" +objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas de proxy pour la connexion API" objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi" serverLogs: "Journal du serveur" deleteAll: "Supprimer tout" @@ -600,7 +600,7 @@ useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votr other: "Autre" regenerateLoginToken: "Régénérer le jeton de connexion" regenerateLoginTokenDescription: "Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. " -setMultipleBySeparatingWithSpace: "Vous pouvez définir plus d’un, séparés par des espaces." +setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant par des espaces." fileIdOrUrl: "ID du fichier ou URL" chatOpenBehavior: "Comportement de la fenêtre de discussion lors de son ouverture" behavior: "Comportement" @@ -728,6 +728,7 @@ online: "En ligne" offline: "Hors ligne" notRecommended: "Déconseillé" botProtection: "Protection contre les bots" +instanceBlocking: "Instances bloquées" selectAccount: "Sélectionner un compte" enabled: "Activé" disabled: "Désactivé" @@ -1140,8 +1141,8 @@ _exportOrImport: blockingList: "Comptes bloqués" userLists: "Listes" _charts: - federationInstancesIncDec: "Variation du nombre des instances fédérées" - federationInstancesTotal: "Nombre total des instances fédérées" + federationInstancesIncDec: "Variation du nombre d'instances fédérées" + federationInstancesTotal: "Nombre total d'instances fédérées" usersIncDec: "Variation du nombre d'utilisateur·rice·s" usersTotal: "Nombre des utilisateur·rice·s au total" activeUsers: "Utilisateur·rice·s actif·ve·s" @@ -1156,11 +1157,11 @@ _charts: _instanceCharts: requests: "Requêtes" users: "Variation du nombre d'utilisateur·rice·s" - usersTotal: "Nombre d'utilisateur·rice·s au total cumulé" - notes: "Variation du nombre des notes" + usersTotal: "Total cumulé du nombre d'utilisateur·rice·s" + notes: "Variation du nombre de notes" notesTotal: "Nombre total cumulé des notes" - ff: "Variation des abonné·e·s et des abonnements" - ffTotal: "Total cumulé du nombre d'abonné·e·s et du nombre d'abonnements" + ff: "Variation des abonné·e·s / abonnements" + ffTotal: "Total cumulé du nombre d'abonné·e·s / abonnements" cacheSize: "Variation de la taille du cache" cacheSizeTotal: "Total cumulé de la taille du cache" files: "Variation du nombre de fichiers" @@ -1187,7 +1188,7 @@ _rooms: default: "Par défaut" washitsu: "Style japonnais" _furnitures: - milk: "Lait en carton" + milk: "Brique de lait" bed: "Lit" low-table: "Table basse" desk: "Bureau" @@ -1206,7 +1207,7 @@ _rooms: book: "Livre" book2: "Livre 2" piano: "Piano" - facial-tissue: "Mouchoirs en papier" + facial-tissue: "Boîte de mouchoirs" server: "Serveurs" moon: "Lune" corkboard: "Tableau en liège" @@ -1219,7 +1220,7 @@ _rooms: wall-clock: "Horloge murale" photoframe: "Cadre photo" cube: "Cube" - tv: "Téléviseur" + tv: "Télé" pinguin: "Pingouin" rubik-cube: "Cube de Rubik" poster-h: "Affiche (horizontale)" diff --git a/locales/it-IT.yml b/locales/it-IT.yml index cc1178426a988f08e856564097e509924e09621e..1a73f40a34ab25927ac92faf924740114b54eb75 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -153,6 +153,9 @@ recipient: "Destinatario" annotation: "Descrizione" federation: "Federazione" instances: "Istanza" +latestRequestSentAt: "Ultima richiesta inviata" +latestRequestReceivedAt: "Ultima richiesta ricevuta" +latestStatus: "Ultimo stato" storageUsage: "Volume di dischi" charts: "Grafici" perHour: "All'ora" @@ -172,6 +175,7 @@ instanceInfo: "Informazioni sull'istanza" statistics: "Statistiche" clearQueue: "Svuota coda" clearQueueConfirmTitle: "Vuoi davvero svuotare la coda?" +clearQueueConfirmText: "Le note ancora non distribuite non verranno rilasciate. Solitamente, non è necessario eseguire questa operazione." clearCachedFiles: "Svuota cache" clearCachedFilesConfirm: "Vuoi davvero svuotare la cache da tutti i file remoti?" blockedInstances: "Istanze bloccate" @@ -329,6 +333,7 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "Abilita reCAPTCHA" recaptchaSiteKey: "Chiave del sito" recaptchaSecretKey: "Chiave segreta" +avoidMultiCaptchaConfirm: "Utilizzare diversi Captcha può causare interferenze. Vuoi disattivare l'altro Captcha? Puoi lasciare diversi Captcha attivi premendo \"Cancella\"." antennas: "Antenne" manageAntennas: "Gestore delle antenne" name: "Nome" @@ -468,6 +473,9 @@ objectStoragePrefixDesc: "I file saranno conservati sotto la directory di questo objectStorageEndpoint: "Endpoint" objectStorageRegion: "Region" objectStorageUseSSL: "Usare SSL" +objectStorageUseProxy: "Usa proxy" +objectStorageUseProxyDesc: "Disabilita quest'opzione se non usi proxy per la connessione API." +objectStorageSetPublicRead: "Imposta \"visibilità pubblica\" al momento di caricare" serverLogs: "Log del server" deleteAll: "Cancella cronologia" showFixedPostForm: "Visualizzare la finestra di pubblicazione in cima alla timeline" @@ -497,7 +505,7 @@ scratchpad: "ScratchPad" output: "Uscita" script: "Script" disablePagesScript: "Disabilita AiScript nelle pagine" -updateRemoteUser: "Aggiornare le informazioni di utente remoto" +updateRemoteUser: "Aggiornare le informazioni di utente remot@" deleteAllFiles: "Elimina tutti i file" deleteAllFilesConfirm: "Vuoi davvero eliminare tutti i file?" removeAllFollowing: "Cancella tutti i follows" @@ -508,7 +516,10 @@ sidebar: "Barra laterale" divider: "Linea di separazione" addItem: "Aggiungi elemento" rooms: "Camera" +relays: "Ripetitori" +addRelay: "Aggiungi ripetitore" inboxUrl: "Inbox URL" +addedRelays: "Ripetitori configurati" serviceworkerInfo: "Deve essere abilitato per le notifiche push. " deletedNote: "Nota eliminata" invisibleNote: "Nota invisibile" @@ -533,9 +544,12 @@ height: "Altezza" large: "Grande" medium: "Predefinito" small: "Piccolo" +generateAccessToken: "Genera token di accesso" +permission: "Autorizzazioni " enableAll: "Abilita tutto" disableAll: "Disabilita tutto" tokenRequested: "Autorizza accesso all'account" +pluginTokenRequestedDescription: "Il plugin potrà utilizzare le autorizzazioni impostate qui." notificationType: "Tipo di notifiche" edit: "Modifica" useStarForReactionFallback: "Se è sconosciuto l'emoji di reazione, usare la ★ come alternativa." @@ -570,6 +584,8 @@ notificationSettingDesc: "Seleziona il tipo di notifiche da visualizzare." useGlobalSetting: "Usa impostazioni generali" useGlobalSettingDesc: "Se abilitato, le impostazioni notifiche dell'account verranno utilizzate. Se disabilitato, si possono definire diverse singole impostazioni." other: "Avanzate" +regenerateLoginToken: "Genera di nuovo un token di connessione" +regenerateLoginTokenDescription: "Genera un nuovo token di autenticazione. Solitamente questa operazione non è necessaria: quando si genera un nuovo token, tutti i dispositivi vanno disconnessi." fileIdOrUrl: "ID o URL del file" chatOpenBehavior: "Comportamento della finestra di chat quando viene aperta" behavior: "Comportamento" @@ -593,6 +609,7 @@ optional: "Opzionale" createNewClip: "Nuova clip" public: "Pubblica" i18nInfo: "Misskey è tradotto in diverse lingue da volontari. Anche tu puoi contribuire su {link}." +manageAccessTokens: "Gestisci token di accesso" accountInfo: "Informazioni account" notesCount: "Conteggio note" repliesCount: "Numero di risposte inviate" @@ -609,7 +626,11 @@ yes: "Sì" no: "No" driveFilesCount: "Numero di file nel Drive" driveUsage: "Utilizzazione del Drive" +noCrawle: "Rifiuta l'indicizzazione dai robot." +noCrawleDescription: "Richiedi che i motori di ricerca non indicizzino la tua pagina di profilo, le tue note, pagine, ecc." alwaysMarkSensitive: "Segnare i media come sensibili per impostazione predefinita" +loadRawImages: "Visualizza le intere immagini allegate invece delle miniature." +disableShowingAnimatedImages: "Disabilita le immagini animate" verificationEmailSent: "Una mail di verifica è stata inviata. Si prega di accedere al collegamento per compiere la verifica." notSet: "Non impostato" emailVerified: "Il tuo indirizzo email è stato verificato" @@ -629,6 +650,7 @@ duplicate: "Duplica" left: "Sinistra" center: "Centro" wide: "Largo" +reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricamento della pagina. Vuoi ricaricare adesso?" showTitlebar: "Visualizza la barra del titolo" clearCache: "Svuota cache" onlineUsersCount: "{n} utenti online" @@ -645,6 +667,7 @@ createdAt: "Data di creazione" updatedAt: "Aggiornato il" saveConfirm: "Vuoi salvare le modifiche?" deleteConfirm: "Rimuovere?" +invalidValue: "Questo non è un valore valido." registry: "Registro" closeAccount: "Disattiva account" currentVersion: "Versione attuale" @@ -733,6 +756,7 @@ _nsfw: force: "Nascondere tutti i media" _mfm: cheatSheet: "Bigliettino MFM" + intro: "MFM è un linguaggio Markdown particolare che si può usare in diverse parti di Misskey. Qui puoi visualizzare a colpo d'occhio tutta la sintassi MFM utile." dummy: "Il Fediverso si espande con Misskey" mention: "Menzioni" mentionDescription: "Si può menzionare un utente specifico digitando il suo nome utente subito dopo il segno @." @@ -1005,11 +1029,17 @@ _charts: filesIncDec: "Variazione del numero dei file" filesTotal: "Numero totale di file" storageUsageIncDec: "Variazione dell'utilizzo dell'immagazzinamento" + storageUsageTotal: "Utilizzo totale dell'immagazzinamento" _instanceCharts: + requests: "Richieste" users: "Variazione del numero di utenti" usersTotal: "Totale cumulativo di utenti" notes: "Variazione del numero di note" notesTotal: "Totale cumulato di note" + ff: "Variazione dei follow/ follower" + ffTotal: "Totale cumulato dei follow/ follower" + cacheSize: "Variazione dello spazio occupato dalla cache" + cacheSizeTotal: "Totale cumulato dello spazio occupato dalla cache" files: "Variazione del numero di file" filesTotal: "Totale cumulato del numero di file" _timelines: @@ -1029,18 +1059,19 @@ _rooms: leaveConfirm: "Hai fatto modifiche ancora non salvate. Vuoi davvero uscire?" chooseImage: "Seleziona immagine" roomType: "Tipo di stanza" + carpetColor: "Colore del suolo" _roomType: default: "Predefinito" washitsu: "Washitsu" _furnitures: milk: "Cartone del latte" bed: "Letto" - low-table: "Tavolino Coffee" + low-table: "Tavolino" desk: "Tavolo" chair: "Sedia" chair2: "Sedia 2" fan: "Ventilatore" - pc: "PC" + pc: "Computer" plant: "Pianta da appartamento" plant2: "Pianta da appartamento2" eraser: "Gomma" @@ -1052,22 +1083,32 @@ _rooms: book: "Libro" book2: "Libro2" piano: "Pianoforte" + facial-tissue: "Scatola di fazzolettini" server: "Server" moon: "Luna" corkboard: "Bacheca" mousepad: "Tappetino per il mouse" monitor: "Monitor " keyboard: "Tastiera" + carpet-stripe: "Tappeto (a strisce)" mat: "Zerbino" color-box: "Libreria" wall-clock: "Orologio da parete" photoframe: "Cornice" cube: "Cubo" - tv: "Televisore" + tv: "TV" pinguin: "Pinguino" rubik-cube: "Cubo di Rubik" + poster-h: "Poster (orizzontale)" + poster-v: "Poster (verticale)" + sofa: "Divano" + spiral: "Scale a chiocciola" bin: "Cestino" cup-noodle: "Noodle istantanei" + holo-display: "Visualizzazione olografica" + energy-drink: "Bevanda energetica" + doll-ai: "Bambola Ai" + banknote: "Mazzetta di banconote" _pages: newPage: "Crea pagina" editPage: "Modifica pagina" @@ -1078,6 +1119,7 @@ _pages: pageSetting: "Impostazioni pagina" nameAlreadyExists: "Esiste già una pagina con lo stesso URL." invalidNameTitle: "L'URL di pagina definito non è valido" + invalidNameText: "Verifica che il campo non è vuoto" editThisPage: "Modifica questa pagina" viewSource: "Visualizza sorgente" viewPage: "Visualizza pagina" diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 7b61c2f0a7aab35bdac1194393ed4662768f926d..024faa45a377ac7e3009411db971281293e88455 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -138,6 +138,7 @@ flagAsBotDescription: "ì´ ê³„ì •ì„ ìžë™í™”ëœ ìˆ˜ë‹¨ìœ¼ë¡œ ìš´ìš©í• ê²½ìš° flagAsCat: "나는 ê³ ì–‘ì´ë‹¤ëƒ¥" flagAsCatDescription: "ì´ ê³„ì •ì´ ê³ ì–‘ì´ë¼ë©´ 활성화 해주세요." autoAcceptFollowed: "팔로우 ì¤‘ì¸ ìœ ì €ë¡œë¶€í„°ì˜ íŒ”ë¡œìš° ìš”ì²ì„ ìžë™ 수ë½" +addAccount: "ê³„ì • 추가" loginFailed: "로그ì¸ì— 실패했습니다" showOnRemote: "리모트ì—ì„œ 보기" general: "ì¼ë°˜" @@ -451,6 +452,7 @@ category: "ì¹´í…Œê³ ë¦¬" tags: "태그" docSource: "ì´ ë¬¸ì„œì˜ ì†ŒìŠ¤" createAccount: "ê³„ì • 만들기" +existingAccount: "기존 ê³„ì •" regenerate: "재ìƒì„±" fontSize: "ê¸€ìž í¬ê¸°" noFollowRequests: "처리ë˜ì§€ ì•Šì€ íŒ”ë¡œìš° ìš”ì²ì´ 없습니다" @@ -565,6 +567,7 @@ pluginTokenRequestedDescription: "ì´ í”ŒëŸ¬ê·¸ì¸ì€ 여기서 ì„¤ì •í•œ 권한 notificationType: "알림 ìœ í˜•" edit: "편집" useStarForReactionFallback: "ì•Œ 수 없는 리액션 ì´ëª¨ì§€ ëŒ€ì‹ â˜… 사용" +emailServer: "ë©”ì¼ ì„œë²„" enableEmail: "ì´ë©”ì¼ ì†¡ì‹ ê¸°ëŠ¥ 활성화" emailConfigInfo: "가입 ì‹œ ë©”ì¼ ì£¼ì†Œ 확ì¸ì´ë‚˜ 비밀번호 초기화 ì‹œì— ì‚¬ìš©í•©ë‹ˆë‹¤." email: "ì´ë©”ì¼" @@ -701,6 +704,7 @@ editCode: "코드 ìˆ˜ì •" apply: "ì ìš©" receiveAnnouncementFromInstance: "ì´ ì¸ìŠ¤í„´ìŠ¤ì˜ ì•Œë¦¼ì„ ì´ë©”ì¼ë¡œ ìˆ˜ì‹ í• ê²Œìš”" emailNotification: "ë©”ì¼ ì•Œë¦¼" +publish: "게시" inChannelSearch: "채ë„ì—ì„œ 검색" useReactionPickerForContextMenu: "ìš°í´ë¦í•˜ì—¬ 리액션 ì„ íƒê¸° 열기" typingUsers: "{users} ë‹˜ì´ ìž…ë ¥í•˜ê³ ìžˆì–´ìš”.." @@ -724,11 +728,30 @@ hideOnlineStatusDescription: "온ë¼ì¸ ìƒíƒœë¥¼ 숨기면, 검색과 ê°™ì€ online: "온ë¼ì¸" active: "ìµœê·¼ì— í™œë™í•¨" offline: "오프ë¼ì¸" +notRecommended: "추천하지 ì•ŠìŒ" +botProtection: "Bot ë°©ì–´" +instanceBlocking: "ì¸ìŠ¤í„´ìŠ¤ 차단" +selectAccount: "ê³„ì • ì„ íƒ" +enabled: "활성화" +disabled: "비활성화" +quickAction: "ë¹ ë¥¸ ë™ìž‘" user: "ìœ ì €" administration: "관리" +accounts: "ê³„ì •" +switch: "ì „í™˜" +noMaintainerInformationWarning: "ê´€ë¦¬ìž ì •ë³´ê°€ ì„¤ì •ë˜ì–´ 있지 않습니다." +noBotProtectionWarning: "Bot ë°©ì–´ê°€ ì„¤ì •ë˜ì–´ 있지 않습니다." +configure: "ì„¤ì •í•˜ê¸°" +postToGallery: "ê°¤ëŸ¬ë¦¬ì— ì—…ë¡œë“œ" gallery: "갤러리" +recentPosts: "최근 í¬ìŠ¤íŠ¸" +popularPosts: "ì¸ê¸° í¬ìŠ¤íŠ¸" +shareWithNote: "노트로 ê³µìœ " _gallery: - unlike: "좋아요 í•´ì œ" + my: "ë‚´ 갤러리" + liked: "좋아요 í•œ 갤러리" + like: "좋아요!" + unlike: "좋아요 취소" _email: _follow: title: "새로운 팔로워가 있습니다" diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index 5620c0f921a9a691d07ab9a2c48731b0afa50a33..40372658e0433fb7a97eec609365c558cf06f01e 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -704,6 +704,7 @@ editCode: "Редактировать иÑходный текÑÑ‚" apply: "Применить" receiveAnnouncementFromInstance: "Получать Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ñ Ð¸Ð½ÑтанÑа" emailNotification: "Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñлектронной почте" +publish: "Опубликовать" inChannelSearch: "ПоиÑк по каналу" useReactionPickerForContextMenu: "Открывать палитру реакций правой кнопкой" typingUsers: "Стук клавиш. Ðто {users}…" @@ -741,7 +742,15 @@ switch: "Переключение" noMaintainerInformationWarning: "Ðе заполнены ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¾Ð± админиÑтраторах" noBotProtectionWarning: "Ботозащита не наÑтроена" configure: "ÐаÑтроить" +postToGallery: "Опубликовать в галерею" +gallery: "ГалереÑ" +recentPosts: "Ðедавние публикации" +popularPosts: "ПопулÑрные публикации" +shareWithNote: "ПоделитьÑÑ Ð·Ð°Ð¼ÐµÑ‚ÐºÐ¾Ð¹" _gallery: + my: "ЛичнаÑ" + liked: "ПонравившееÑÑ" + like: "ÐравитÑÑ!" unlike: "Отменить «нравитÑÑ»" _email: _follow: diff --git a/package.json b/package.json index 0469a3648cd8f39945aca555cd7e629ff18e72ae..25ebacaa7c4c5019b38ee9734387086f37ffc8fb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo <syuilotan@yahoo.co.jp>", - "version": "12.79.2", + "version": "12.79.3", "codename": "indigo", "repository": { "type": "git", diff --git a/src/client/components/user-select-dialog.vue b/src/client/components/user-select-dialog.vue index 620c8eee280a7e952a3cee4bdb40f28880799a7e..74081753b7f38a01853b428c1998e2a0bc496782 100644 --- a/src/client/components/user-select-dialog.vue +++ b/src/client/components/user-select-dialog.vue @@ -8,33 +8,35 @@ @closed="$emit('closed')" > <template #header>{{ $ts.selectUser }}</template> - <div class="tbhwbxda _section"> - <div class="inputs"> - <MkInput v-model:value="username" class="input" @update:value="search" ref="username"><span>{{ $ts.username }}</span><template #prefix>@</template></MkInput> - <MkInput v-model:value="host" class="input" @update:value="search"><span>{{ $ts.host }}</span><template #prefix>@</template></MkInput> + <div class="tbhwbxda _monolithic_"> + <div class="_section"> + <div class="inputs"> + <MkInput v-model:value="username" class="input" @update:value="search" ref="username"><span>{{ $ts.username }}</span><template #prefix>@</template></MkInput> + <MkInput v-model:value="host" class="input" @update:value="search"><span>{{ $ts.host }}</span><template #prefix>@</template></MkInput> + </div> </div> - </div> - <div class="tbhwbxda _section result" v-if="username != '' || host != ''" :class="{ hit: users.length > 0 }"> - <div class="users" v-if="users.length > 0"> - <div class="user" v-for="user in users" :key="user.id" :class="{ selected: selected && selected.id === user.id }" @click="selected = user" @dblclick="ok()"> - <MkAvatar :user="user" class="avatar" :show-indicator="true"/> - <div class="body"> - <MkUserName :user="user" class="name"/> - <MkAcct :user="user" class="acct"/> + <div class="_section result" v-if="username != '' || host != ''" :class="{ hit: users.length > 0 }"> + <div class="users" v-if="users.length > 0"> + <div class="user" v-for="user in users" :key="user.id" :class="{ selected: selected && selected.id === user.id }" @click="selected = user" @dblclick="ok()"> + <MkAvatar :user="user" class="avatar" :show-indicator="true"/> + <div class="body"> + <MkUserName :user="user" class="name"/> + <MkAcct :user="user" class="acct"/> + </div> </div> </div> + <div v-else class="empty"> + <span>{{ $ts.noUsers }}</span> + </div> </div> - <div v-else class="empty"> - <span>{{ $ts.noUsers }}</span> - </div> - </div> - <div class="tbhwbxda _section recent" v-if="username == '' && host == ''"> - <div class="users"> - <div class="user" v-for="user in recentUsers" :key="user.id" :class="{ selected: selected && selected.id === user.id }" @click="selected = user" @dblclick="ok()"> - <MkAvatar :user="user" class="avatar" :show-indicator="true"/> - <div class="body"> - <MkUserName :user="user" class="name"/> - <MkAcct :user="user" class="acct"/> + <div class="_section recent" v-if="username == '' && host == ''"> + <div class="users"> + <div class="user" v-for="user in recentUsers" :key="user.id" :class="{ selected: selected && selected.id === user.id }" @click="selected = user" @dblclick="ok()"> + <MkAvatar :user="user" class="avatar" :show-indicator="true"/> + <div class="body"> + <MkUserName :user="user" class="name"/> + <MkAcct :user="user" class="acct"/> + </div> </div> </div> </div> @@ -122,76 +124,78 @@ export default defineComponent({ <style lang="scss" scoped> .tbhwbxda { - display: flex; - flex-direction: column; - overflow: auto; - height: 100%; + > ._section { + display: flex; + flex-direction: column; + overflow: auto; + height: 100%; - &.result.hit { - padding: 0; - } + &.result.hit { + padding: 0; + } - &.recent { - padding: 0; - } + &.recent { + padding: 0; + } - > .inputs { - > .input { - display: inline-block; - width: 50%; - margin: 0; + > .inputs { + > .input { + display: inline-block; + width: 50%; + margin: 0; + } } - } - > .users { - flex: 1; - overflow: auto; - padding: 8px 0; + > .users { + flex: 1; + overflow: auto; + padding: 8px 0; - > .user { - display: flex; - align-items: center; - padding: 8px var(--root-margin); - font-size: 14px; + > .user { + display: flex; + align-items: center; + padding: 8px var(--root-margin); + font-size: 14px; - &:hover { - background: var(--X7); - } + &:hover { + background: var(--X7); + } - &.selected { - background: var(--accent); - color: #fff; - } + &.selected { + background: var(--accent); + color: #fff; + } - > * { - pointer-events: none; - user-select: none; - } + > * { + pointer-events: none; + user-select: none; + } - > .avatar { - width: 45px; - height: 45px; - } + > .avatar { + width: 45px; + height: 45px; + } - > .body { - padding: 0 8px; - min-width: 0; + > .body { + padding: 0 8px; + min-width: 0; - > .name { - display: block; - font-weight: bold; - } + > .name { + display: block; + font-weight: bold; + } - > .acct { - opacity: 0.5; + > .acct { + opacity: 0.5; + } } } } - } - > .empty { - opacity: 0.7; - text-align: center; + > .empty { + opacity: 0.7; + text-align: center; + } } } </style> diff --git a/src/client/pages/reversi/game.setting.vue b/src/client/pages/reversi/game.setting.vue index 1a2abba79527c3c3329c1ee5404c950078093b16..341aa7d658a44b0f6e91cb6814c74f4062f5f118 100644 --- a/src/client/pages/reversi/game.setting.vue +++ b/src/client/pages/reversi/game.setting.vue @@ -157,7 +157,6 @@ export default defineComponent({ maps: maps, form: null, messages: [], - fasCircle, farCircle }; },