Skip to content

Commit

Permalink
add descriptive name to avoid conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
rrchai committed Apr 2, 2024
1 parent d63398b commit 9f2a1b5
Show file tree
Hide file tree
Showing 8 changed files with 148 additions and 99 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import {
ChallengeSort,
ChallengeStatus,
} from '@sagebionetworks/openchallenges/api-client-angular';
import { Filter } from '@sagebionetworks/openchallenges/ui';
import {
challengeCategoriesLabels,
challengeIncentivesLabels,
challengeSubmissionTypesLabels,
ChallengeCategoriesOptions,
ChallengeIncentivesOptions,
ChallengeStatusOptions,
ChallengeSubmissionTypesOptions,
ChallengeSortOptions,
} from '@sagebionetworks/openchallenges/util';

const thisYear = new Date().getFullYear();
Expand Down Expand Up @@ -57,47 +55,13 @@ export const challengeStartYearRangeFilter: Filter[] = [
},
];

export const challengeStatusFilter: Filter[] = [
{
value: ChallengeStatus.Active,
label: 'Active',
},
{
value: ChallengeStatus.Upcoming,
label: 'Upcoming',
},
{
value: ChallengeStatus.Completed,
label: 'Completed',
},
];

export const challengeSubmissionTypesFilter: Filter[] =
challengeSubmissionTypesLabels;

export const challengeIncentivesFilter: Filter[] = challengeIncentivesLabels;

export const challengePlatformsFilter: Filter[] = [];

export const challengeCategoriesFilter: Filter[] = ChallengeCategoriesOptions;
export const challengeIncentivesFilter: Filter[] = ChallengeIncentivesOptions;
export const challengeInputDataTypesFilter: Filter[] = [];

export const challengeCategoriesFilter: Filter[] = challengeCategoriesLabels;

export const challengeOrganizationsFilter: Filter[] = [];

export const challengeOrganizersFilter: Filter[] = [];

export const challengeSortFilter: Filter[] = [
{
value: ChallengeSort.Relevance,
label: 'Relevance',
},
{
value: ChallengeSort.StartDate,
label: 'Start Date',
},
{
value: ChallengeSort.Starred,
label: 'Most Starred',
},
];
export const challengePlatformsFilter: Filter[] = [];
export const challengeSortFilter: Filter[] = ChallengeSortOptions;
export const challengeStatusFilter: Filter[] = ChallengeStatusOptions;
export const challengeSubmissionTypesFilter: Filter[] =
ChallengeSubmissionTypesOptions;
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ <h3 class="section-title">Challenge Details</h3>
</tr>
<tr>
<td class="text-right">Status</td>
<td>{{ challenge.status | titlecase }}</td>
<td>{{ challenge.status | challengeStatusLabel }}</td>
</tr>
<tr>
<td class="text-right">Platform</td>
Expand Down Expand Up @@ -58,7 +58,7 @@ <h3 class="section-title">Challenge Details</h3>
nowrap
*ngFor="let submissionType of challenge.submissionTypes; let isLast = last"
>
{{ submissionType | submissionTypeLabel }}{{ isLast ? '' : ', ' }}</span
{{ submissionType | challengeSubmissionTypeLabel }}{{ isLast ? '' : ', ' }}</span
>
</td>
<ng-template #na_subs>
Expand All @@ -69,7 +69,7 @@ <h3 class="section-title">Challenge Details</h3>
<td class="text-right">Incentive(s)</td>
<td *ngIf="challenge.incentives && challenge.incentives.length > 0; else na_prize">
<span nowrap *ngFor="let incentive of challenge.incentives; let isLast = last">
{{ incentive | incentiveLabel }}{{ isLast ? '' : ', ' }}</span
{{ incentive | challengeIncentiveLabel }}{{ isLast ? '' : ', ' }}</span
>
</td>
<ng-template #na_prize>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,19 @@ import {

import { MatIconModule } from '@angular/material/icon';
import {
IncentiveLabelPipe,
SubmissionTypeLabelPipe,
ChallengeIncentiveLabelPipe,
ChallengeStatusLabelPipe,
ChallengeSubmissionTypeLabelPipe,
} from '@sagebionetworks/openchallenges/util';
@Component({
selector: 'openchallenges-challenge-overview',
standalone: true,
imports: [
ChallengeIncentiveLabelPipe,
ChallengeStatusLabelPipe,
ChallengeSubmissionTypeLabelPipe,
CommonModule,
IncentiveLabelPipe,
MatIconModule,
SubmissionTypeLabelPipe,
],
templateUrl: './challenge-overview.component.html',
styleUrls: ['./challenge-overview.component.scss'],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
*ngIf="challenge.incentives.length > 0; else noIncentives"
>
<ng-container *ngFor="let incentive of challenge.incentives; let isLast = last">
{{ incentive | incentiveLabel }}{{ isLast ? '' : ', ' }}
{{ incentive | challengeIncentiveLabel }}{{ isLast ? '' : ', ' }}
</ng-container>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,18 @@ import {
Image,
ImageService,
} from '@sagebionetworks/openchallenges/api-client-angular';
import { IncentiveLabelPipe } from '@sagebionetworks/openchallenges/util';
import { ChallengeIncentiveLabelPipe } from '@sagebionetworks/openchallenges/util';
import { Observable } from 'rxjs';

@Component({
selector: 'openchallenges-challenge-card',
standalone: true,
imports: [CommonModule, IncentiveLabelPipe, MatIconModule, RouterModule],
imports: [
ChallengeIncentiveLabelPipe,
CommonModule,
MatIconModule,
RouterModule,
],
templateUrl: './challenge-card.component.html',
styleUrls: ['./challenge-card.component.scss'],
})
Expand Down
2 changes: 1 addition & 1 deletion libs/openchallenges/util/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ export * from './lib/http-status-redirect';
export * from './lib/is-api-client-error';
export * from './lib/page-title.service';
export * from './lib/pipe/challenge-property-label.pipe';
export * from './lib/pipe/challenge-property-labels';
export * from './lib/pipe/challenge-property-options';
Original file line number Diff line number Diff line change
@@ -1,35 +1,76 @@
import { Pipe, PipeTransform } from '@angular/core';
import {
ChallengeCategory,
ChallengeIncentive,
ChallengeSort,
ChallengeStatus,
ChallengeSubmissionType,
} from '@sagebionetworks/openchallenges/api-client-angular';
import {
challengeIncentivesLabels,
challengeSubmissionTypesLabels,
} from './challenge-property-labels';
ChallengeCategoriesOptions,
ChallengeIncentivesOptions,
ChallengeSortOptions,
ChallengeStatusOptions,
ChallengeSubmissionTypesOptions,
} from './challenge-property-options';

@Pipe({
name: 'incentiveLabel',
name: 'challengeCategoryLabel',
standalone: true,
})
export class IncentiveLabelPipe implements PipeTransform {
export class ChallengeCategoryLabelPipe implements PipeTransform {
transform(category: ChallengeCategory): string | undefined {
const option = ChallengeCategoriesOptions.find(
(item) => item.value === category
);
return option ? option.label : undefined;
}
}

@Pipe({
name: 'challengeIncentiveLabel',
standalone: true,
})
export class ChallengeIncentiveLabelPipe implements PipeTransform {
transform(incentive: ChallengeIncentive): string | undefined {
const filterItem = challengeIncentivesLabels.find(
const option = ChallengeIncentivesOptions.find(
(item) => item.value === incentive
);
return filterItem ? filterItem.label : undefined;
return option ? option.label : undefined;
}
}

@Pipe({
name: 'challengeSortLabel',
standalone: true,
})
export class ChallengeSortLabelPipe implements PipeTransform {
transform(sort: ChallengeSort): string | undefined {
const option = ChallengeSortOptions.find((item) => item.value === sort);
return option ? option.label : undefined;
}
}

@Pipe({
name: 'challengeStatusLabel',
standalone: true,
})
export class ChallengeStatusLabelPipe implements PipeTransform {
transform(status: ChallengeStatus): string | undefined {
const option = ChallengeStatusOptions.find((item) => item.value === status);
return option ? option.label : undefined;
}
}

@Pipe({
name: 'submissionTypeLabel',
name: 'challengeSubmissionTypeLabel',
standalone: true,
})
export class SubmissionTypeLabelPipe implements PipeTransform {
export class ChallengeSubmissionTypeLabelPipe implements PipeTransform {
transform(submissionType: ChallengeSubmissionType): string | undefined {
const filterItem = challengeSubmissionTypesLabels.find(
const option = ChallengeSubmissionTypesOptions.find(
(item) => item.value === submissionType
);
return filterItem ? filterItem.label : undefined;
return option ? option.label : undefined;
}
}
Original file line number Diff line number Diff line change
@@ -1,38 +1,53 @@
import {
ChallengeCategory,
ChallengeIncentive,
ChallengeSort,
ChallengeStatus,
ChallengeSubmissionType,
} from '@sagebionetworks/openchallenges/api-client-angular';

type ChallengeLabels = {
value: ChallengeSubmissionType | ChallengeIncentive | ChallengeCategory;
type ChallengePropertyOption = {
value:
| ChallengeCategory
| ChallengeIncentive
| ChallengeSort
| ChallengeStatus
| ChallengeSubmissionType;
label: string;
};

export const challengeSubmissionTypesLabels: ChallengeLabels[] = [
export const ChallengeCategoriesOptions: ChallengePropertyOption[] = [
{
value: ChallengeSubmissionType.ContainerImage,
label: 'Container Image',
value: ChallengeCategory.Featured,
label: 'Featured',
},
{
value: ChallengeSubmissionType.Mlcube,
label: 'MLCube',
value: ChallengeCategory.Benchmark,
label: 'Benchmark',
},
{
value: ChallengeSubmissionType.Notebook,
label: 'Notebook',
value: ChallengeCategory.Hackathon,
label: 'Hackathon',
},
{
value: ChallengeSubmissionType.PredictionFile,
label: 'Prediction File',
value: ChallengeCategory.StartingSoon,
label: 'Starting Soon',
},
{
value: ChallengeSubmissionType.Other,
label: 'Other',
value: ChallengeCategory.EndingSoon,
label: 'Closing Soon',
},
{
value: ChallengeCategory.RecentlyStarted,
label: 'Recently Launched',
},
{
value: ChallengeCategory.RecentlyEnded,
label: 'Recently Completed',
},
];

export const challengeIncentivesLabels: ChallengeLabels[] = [
export const ChallengeIncentivesOptions: ChallengePropertyOption[] = [
{
value: ChallengeIncentive.Monetary,
label: 'Monetary',
Expand All @@ -51,33 +66,55 @@ export const challengeIncentivesLabels: ChallengeLabels[] = [
},
];

export const challengeCategoriesLabels: ChallengeLabels[] = [
export const ChallengeSortOptions: ChallengePropertyOption[] = [
{
value: ChallengeCategory.Featured,
label: 'Featured',
value: ChallengeSort.Relevance,
label: 'Relevance',
},
{
value: ChallengeCategory.Benchmark,
label: 'Benchmark',
value: ChallengeSort.StartDate,
label: 'Start Date',
},
{
value: ChallengeCategory.Hackathon,
label: 'Hackathon',
value: ChallengeSort.Starred,
label: 'Most Starred',
},
];

export const ChallengeStatusOptions: ChallengePropertyOption[] = [
{
value: ChallengeCategory.StartingSoon,
label: 'Starting Soon',
value: ChallengeStatus.Active,
label: 'Active',
},
{
value: ChallengeCategory.EndingSoon,
label: 'Closing Soon',
value: ChallengeStatus.Upcoming,
label: 'Upcoming',
},
{
value: ChallengeCategory.RecentlyStarted,
label: 'Recently Launched',
value: ChallengeStatus.Completed,
label: 'Completed',
},
];

export const ChallengeSubmissionTypesOptions: ChallengePropertyOption[] = [
{
value: ChallengeCategory.RecentlyEnded,
label: 'Recently Completed',
value: ChallengeSubmissionType.ContainerImage,
label: 'Container Image',
},
{
value: ChallengeSubmissionType.Mlcube,
label: 'MLCube',
},
{
value: ChallengeSubmissionType.Notebook,
label: 'Notebook',
},
{
value: ChallengeSubmissionType.PredictionFile,
label: 'Prediction File',
},
{
value: ChallengeSubmissionType.Other,
label: 'Other',
},
];

0 comments on commit 9f2a1b5

Please sign in to comment.