feat: refonte UX du dashboard (coquille, tri/filtre/pagination, ⌘K, toasts)
Refonte front (packages/web) : coquille applicative partagée (sidebar desktop + barre d'onglets mobile + PageHeader, langue/push/logout centralisés) pilotée par route.meta.layout ; design system (BaseButton/BaseBadge/SegmentedControl/EmptyState/ SkeletonRow, anneau de focus, icônes @lucide/vue) ; tri/filtre/recherche/pagination côté client via useListControls (+ synchro URL) sur sessions/worktrees/groupes ; section « À traiter », palette de commandes ⌘K, toasts. Aucune modif serveur/protocole/DB. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -25,9 +25,9 @@
|
||||
/>
|
||||
</label>
|
||||
<p v-if="error" class="text-sm text-red-400">{{ error }}</p>
|
||||
<button type="submit" class="btn-primary" :disabled="submitting || token.trim() === ''">
|
||||
<BaseButton type="submit" variant="primary" :loading="submitting" :disabled="token.trim() === ''">
|
||||
{{ submitting ? t('login.submitting') : t('login.submit') }}
|
||||
</button>
|
||||
</BaseButton>
|
||||
</form>
|
||||
</div>
|
||||
</template>
|
||||
@@ -39,6 +39,7 @@ import { useI18n } from 'vue-i18n';
|
||||
import { useAuthStore } from '../stores/auth';
|
||||
import { ApiError } from '../lib/api';
|
||||
import LanguageSwitcher from '../components/LanguageSwitcher.vue';
|
||||
import BaseButton from '../components/ui/BaseButton.vue';
|
||||
|
||||
const { t } = useI18n();
|
||||
const route = useRoute();
|
||||
|
||||
Reference in New Issue
Block a user