Sharkey/packages/frontend/src/components/MkInviteCode.vue

127 lines
3.5 KiB
Vue
Raw Normal View History

<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
<template>
<MkFolder>
<template #label>{{ invite.code }}</template>
<template #suffix>
<span v-if="invite.used">{{ i18n.ts.used }}</span>
<span v-else-if="isExpired" style="color: var(--MI_THEME-error)">{{ i18n.ts.expired }}</span>
<span v-else style="color: var(--MI_THEME-success)">{{ i18n.ts.unused }}</span>
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
</template>
2024-09-24 17:48:49 +09:00
<template #footer>
<div class="_buttons">
<MkButton v-if="!invite.used && !isExpired" primary rounded @click="copyInviteCode()"><i class="ti ti-copy"></i> {{ i18n.ts.copy }}</MkButton>
<MkButton v-if="!invite.used || moderator" danger rounded @click="deleteCode()"><i class="ti ti-trash"></i> {{ i18n.ts.delete }}</MkButton>
</div>
</template>
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
2024-09-24 17:48:49 +09:00
<div :class="$style.root">
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
<div :class="$style.items">
<div>
<div :class="$style.label">{{ i18n.ts.invitationCode }}</div>
<div>{{ invite.code }}</div>
</div>
<div v-if="moderator">
<div :class="$style.label">{{ i18n.ts.inviteCodeCreator }}</div>
<div v-if="invite.createdBy" :class="$style.user">
<MkAvatar :user="invite.createdBy" :class="$style.avatar" link preview/>
<MkUserName :user="invite.createdBy" :nowrap="false"/>
<div v-if="moderator">({{ invite.createdBy.id }})</div>
</div>
<div v-else>system</div>
</div>
<div v-if="invite.used">
<div :class="$style.label">{{ i18n.ts.registeredUserUsingInviteCode }}</div>
<div v-if="invite.usedBy" :class="$style.user">
<MkAvatar :user="invite.usedBy" :class="$style.avatar" link preview/>
<MkUserName :user="invite.usedBy" :nowrap="false"/>
<div v-if="moderator">({{ invite.usedBy.id }})</div>
</div>
<div v-else>{{ i18n.ts.unknown }} ({{ i18n.ts.waitingForMailAuth }})</div>
</div>
<div v-if="invite.expiresAt && !invite.used">
<div :class="$style.label">{{ i18n.ts.expirationDate }}</div>
<div><MkTime :time="invite.expiresAt" mode="absolute"/></div>
</div>
<div v-if="invite.usedAt">
<div :class="$style.label">{{ i18n.ts.inviteCodeUsedAt }}</div>
<div><MkTime :time="invite.usedAt" mode="absolute"/></div>
</div>
<div v-if="moderator">
<div :class="$style.label">{{ i18n.ts.createdAt }}</div>
<div><MkTime :time="invite.createdAt" mode="absolute"/></div>
</div>
</div>
</div>
</MkFolder>
</template>
<script lang="ts" setup>
import { computed } from 'vue';
import * as Misskey from 'misskey-js';
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
import MkFolder from '@/components/MkFolder.vue';
import MkButton from '@/components/MkButton.vue';
import { copyToClipboard } from '@/scripts/copy-to-clipboard.js';
2023-09-19 16:37:43 +09:00
import { i18n } from '@/i18n.js';
import * as os from '@/os.js';
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
const props = defineProps<{
ćƒćƒƒć‚Æć‚Øćƒ³ćƒ‰ćŒē”Ÿęˆć™ć‚‹api.json恋悉misskey-jsć®åž‹ć‚’ä½œęˆć™ć‚‹ (#12434) * ć²ćØć¾ćšē”Ÿęˆć§ćć‚‹ćØć“ć‚ć¾ć§ * ćƒ•ć‚”ć‚¤ćƒ«ę§‹ęˆę•“ē† * ē”Ÿęˆć‚³ćƒžćƒ³ćƒ‰ę•“ē† * misskey-jsへの組み込み * fix generator.ts * wip * fix generator.ts * fix package.json * ē”Ÿęˆćƒ­ć‚øćƒƒć‚Æć®čŖæę•“ * åž‹ćƒ¬ćƒ™ćƒ«ć§ć®switch-caseę©Ÿę§‹ć‚’misskey-js恋悉frontendć«ęŒć”č¾¼ć‚ć‚‹ć‚ˆć†ć«ć—ćŸ * åž‹ćƒć‚§ćƒƒć‚Æē”Øć®tsconfig.jsonć‚’ä½œęˆ * ä»–ć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’å‘¼ć¶é–¢ę•°ć«ć‚‚é©ē”Ø * ęœŖä½æē”Øć‚Øćƒ³ćƒ†ć‚£ćƒ†ć‚£ćŖć©ć‚’å‰Šé™¤ * misskey-jså“ć§ę‰‹å‹•å®šē¾©ć•ć‚Œć¦ć„ćŸåž‹ć‚’č‡Ŗå‹•ē”Ÿęˆć•ć‚ŒćŸåž‹ć«ē§»č”Œļ¼ˆćŸć ć—api.jsonがvalidć§ćŖććŖć£ć¦ć—ć¾ć£ćŸć®ć§å¾Œć§äæ®ę­£ć™ć‚‹ļ¼‰ * messagingćÆå»ƒę­¢ć•ć‚Œć¦ć„ć‚‹ļ¼ˆćƒ†ć‚¹ćƒˆć®ćƒ“ćƒ«ćƒ‰ć‚Øćƒ©ćƒ¼č§£ę¶ˆļ¼‰ * validなapi.jsonć‚’å‡ŗåŠ›ć§ćć‚‹ć‚ˆć†ć«äæ®ę­£ * äæ®ę­£ę¼ć‚ŒåÆ¾åæœ * Ajvć«ę€’ć‚‰ć‚Œć¦čµ·å‹•ć§ććŖć‹ć£ćŸćØć“ć‚ć‚’äæ®ę­£ * fix ciļ¼ˆé€”äø­ļ¼‰ * ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æenum悒悄悁悋 * add command * add api.json * éƒ½åŗ¦č‡Ŗå‹•ē”Ÿęˆć‚’ć‚„ć‚ć‚‹ * äø€ę°—é€šč²«ć‚¹ć‚ÆćƒŖćƒ—ćƒˆäæ®ę­£ * fix ci * ē”Ÿęˆćƒ­ć‚øćƒƒć‚Æäæ®ę­£ * ćƒ•ćƒ­ćƒ³ćƒˆć®åž‹ćƒć‚§ćƒƒć‚ÆćÆēµå±€ć‚„ć‚‰ćŖć‹ć£ćŸć®ć§ęˆ»ć—ć¦ćŠć * fix pnpm-lock.yaml * add README.md --------- Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com> Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2023-12-02 21:00:05 +09:00
invite: Misskey.entities.InviteCode;
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
moderator?: boolean;
}>();
const emits = defineEmits<{
(event: 'deleted', value: string): void;
}>();
const isExpired = computed(() => {
return props.invite.expiresAt && new Date(props.invite.expiresAt) < new Date();
});
function deleteCode() {
os.apiWithDialog('invite/delete', {
inviteId: props.invite.id,
});
emits('deleted', props.invite.id);
}
function copyInviteCode() {
copyToClipboard(props.invite.code);
os.success();
}
</script>
<style lang="scss" module>
.root {
text-align: left;
}
.items {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
grid-gap: 12px;
}
.label {
font-size: 0.85em;
padding: 0 0 8px 0;
user-select: none;
2023-07-17 12:03:01 +09:00
opacity: 0.7;
enhance: ę‹›å¾…ę©Ÿčƒ½ć®ę”¹å–„ (#11195) * refactor(backend): ę‹›å¾…ę©Ÿčƒ½ć‚’ę”¹äæ® * feat(backend): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®create/delete/listć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * change(backend): meta恧inviteé–¢é€£ć®ęƒ…å ±ć‚‚čæ”ć™ć‚ˆć†ć« * add(misskey-js): ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆćØåž‹ć‚’čæ½åŠ  * add(backend): `/endpoints/invite/limit`ć‚’čæ½åŠ  * fix: createdByがnullableć§ćÆćŖć‹ć£ćŸć®ć‚’äæ®ę­£ * fix: relationćŒå–å¾—ć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * fix: ćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć‚’é–“é•ćˆć¦ć„ćŸć®ć‚’äæ®ę­£ * feat(client): ę‹›å¾…ćƒšćƒ¼ć‚øć‚’å®Ÿč£… * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ęŠ¼ć—ćŸå “åˆć«ę‹›å¾…ćƒšćƒ¼ć‚øć«é£›ć¶ć‚ˆć†ć«å¤‰ę›“ * feat: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć§ćć‚‹ć‚ˆć†ć« * change(backend): metać«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ē™ŗč”Œć«é–¢ć™ć‚‹ęƒ…å ±ć‚’ęŒćŸć›ć‚‹ć®ć‚’ć‚„ć‚ć‚‹ * feat: ćƒ­ćƒ¼ćƒ«ć”ćØć«ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē™ŗč”ŒäøŠé™ę•°ćŖć©ć‚’čØ­å®šć§ćć‚‹ć‚ˆć†ć« * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’ć‚³ćƒ”ćƒ¼ć—ćŸćØćć«ćƒ€ć‚¤ć‚¢ćƒ­ć‚°ć‚’å‡ŗć™ć‚ˆć†ć« * add: ę‹›å¾…ć«é–¢ć™ć‚‹ē®”ē†č€…ē”Øć®ć‚Øćƒ³ćƒ‰ćƒć‚¤ćƒ³ćƒˆć‚’čæ½åŠ  * change(backend): ćƒ¢ćƒ‡ćƒ¬ćƒ¼ć‚æćƒ¼ć§ć‚ć‚Œć°ä½œęˆč€…ä»„å¤–ć§ć‚‚ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć‚’å‰Šé™¤ć§ćć‚‹ć‚ˆć†ć« * change(backend): admin/invite/listćÆć‚Ŗćƒ•ć‚»ćƒƒćƒˆć§ćƒšćƒ¼ć‚øćƒćƒ¼ć‚·ćƒ§ćƒ³ć™ć‚‹ć‚ˆć†ć« * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē®”ē†ćƒšćƒ¼ć‚øć‚’čæ½åŠ  * feat(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒŖć‚¹ćƒˆć‚’ć‚½ćƒ¼ćƒˆć§ćć‚‹ć‚ˆć†ć« * change: `admin/invite/create`ć®ćƒ¬ć‚¹ćƒćƒ³ć‚¹ć‚’äæ®ę­£ * fix(client): ęœ‰åŠ¹ęœŸé™ć‚’ęŒ‡å®šć§ćć¦ć„ćŖć‹ć£ćŸå•é”Œć‚’äæ®ę­£ * refactor: åæ…č¦ć®ćŖć„ē®‡ę‰€ć‚’å‰Šé™¤ * perf(backend): use limit() instead of take() * change(client): ä½œęˆćƒœć‚æćƒ³ć‚’č¦‹ćŸē›®ć‚’å¤‰ę›“ * refactor: ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ē”ŸęˆéƒØåˆ†ć‚’å…±é€šåŒ–ć—ć€ć‚³ćƒ¼ćƒ‰å†…ć«"01OI"ć®ć„ćšć‚Œć‹ć®ę–‡å­—ć‚’å«ć¾ćŖć„ć‚ˆć†ć« * fix(client): paginationć®ä»•ę§˜ćŒå¤‰ć‚ć£ć¦ć„ćŸć®ć§äæ®ę­£ * change(backend): expiresAtćƒ‘ćƒ©ćƒ”ćƒ¼ć‚æć®nullを許容 * change(client): ęœ‰åŠ¹ęœŸé™ć‚’čØ­ć‘ćŖć„ćØććÆę—„ä»˜ć®å…„åŠ›ę¬„ć‚’éžč”Øē¤ŗć« * fix: č‡Ŗčŗ«ć®ćƒćƒŖć‚·ćƒ¼ć‚ˆć‚Šć‚‚ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹å“ć®ćƒćƒŖć‚·ćƒ¼ćŒå„Ŗå…ˆč”Øē¤ŗć•ć‚Œć‚‹å•é”Œć‚’äæ®ę­£ * fix: nę™‚é–“ć®ćØćć«ć€Œnę™‚é–“é–“ć€ćØćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * fix(backend): ćƒćƒŖć‚·ćƒ¼ćŒé€”äø­ć§å¤‰ę›“ć•ć‚ŒćŸćØćć«ä½œęˆåÆčƒ½ę•°ćŒćƒžć‚¤ćƒŠć‚¹č”ØčØ˜ć«ćŖć£ć¦ć—ć¾ć†ć®ć‚’äæ®ę­£ * change(client): ę‹›å¾…ć‚³ćƒ¼ćƒ‰ć®ćƒ¦ćƒ¼ć‚¶ćƒ¼åćŒäøę˜ŽćŖē†ē”±ć‚’č”Øē¤ŗć™ć‚‹ć‚ˆć†ć« * update: CHANGELOG.md * lint * refactor * refactor * tweak ui * :art: * :art: * add(backend): indexć‚’čæ½åŠ  * change(backend): indexć®čæ½åŠ ć«ä¼“ć†å¤‰ę›“ * change(client): ć‚¤ćƒ³ć‚¹ć‚æćƒ³ć‚¹ćƒ”ćƒ‹ćƒ„ćƒ¼ć®ć€Œę‹›å¾…ć€ć®å “ę‰€ć‚’å¤‰ę›“ * add(frontend): MkInviteCode用のstorybookć‚’čæ½åŠ  * Update misskey-js.api.md * fix(misskey-js): Invite恮createdByć®åž‹ćŒé–“é•ć£ć¦ć„ćŸć®ć‚’äæ®ę­£ --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp> Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-07-15 09:57:58 +09:00
}
.user {
display: flex;
align-items: center;
gap: 8px;
}
.avatar {
--height: 24px;
width: var(--height);
height: var(--height);
}
</style>