feat: Implementar ion-chips, bypass de pago y mejoras UI

- Implementar ion-chips para categorías y keywords en hero page
- Agregar bypass de pago en hire page para pruebas
- Mover progress bar en dashboard
- Corregir shared-components module (remover AccordionComponent eliminado)
- Corregir eventos Ionic (ionInput/ionChange)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CarlosTorres
2026-01-27 23:48:16 +00:00
parent 4afaf69d10
commit 22e4585bb9
8 changed files with 231 additions and 45 deletions

View File

@@ -16,17 +16,45 @@
</ion-item>
<br>
<!-- CATEGORÍAS CON CHIPS -->
<ion-label class="chip-label">{{'hero.categories' | translate}}</ion-label>
<div class="chips-container">
<ion-chip *ngFor="let cat of categories_input" color="primary">
<ion-label>{{cat}}</ion-label>
<ion-icon name="close-circle" (click)="removeCategory(cat)"></ion-icon>
</ion-chip>
</div>
<ion-item>
<ion-label>{{'hero.categories' | translate}}</ion-label>
<ion-select [(ngModel)]="categories_input" multiple="true" okText="Aceptar" cancelText="Cancelar" placeholder="{{'hero.categories_placeholder' | translate}}">
<ion-select-option *ngFor="let category of categories" [value]="category">{{category}}</ion-select-option>
</ion-select>
<ion-input
[(ngModel)]="categorySearchText"
(ionInput)="filterCategories($event)"
(ionFocus)="showCategoryList()"
(ionBlur)="hideCategoryList()"
placeholder="{{'hero.categories_placeholder' | translate}}">
</ion-input>
</ion-item>
<ion-list *ngIf="showCategoryDropdown && filteredCategories.length > 0" class="dropdown-list">
<ion-item *ngFor="let category of filteredCategories" button (click)="selectCategory(category)">
{{category}}
</ion-item>
</ion-list>
<br>
<!-- PALABRAS CLAVE CON CHIPS -->
<ion-label class="chip-label">{{'hero.keywords' | translate}}</ion-label>
<div class="chips-container">
<ion-chip *ngFor="let keyword of keywords" color="secondary">
<ion-label>{{keyword}}</ion-label>
<ion-icon name="close-circle" (click)="removeKeyword(keyword)"></ion-icon>
</ion-chip>
</div>
<ion-item>
<ion-label position="floating">{{'hero.keywords' | translate}}</ion-label>
<ion-input [(ngModel)]="keywords_text" placeholder="{{'hero.keywords_placeholder' | translate}}"></ion-input>
<ion-input
[(ngModel)]="keywordInput"
(keydown)="onKeywordKeydown($event)"
(ionBlur)="addKeyword($event)"
placeholder="{{'hero.keywords_placeholder' | translate}}">
</ion-input>
</ion-item>
<ion-note padding>{{'hero.keywords_hint' | translate}}</ion-note>