Skip to content

Commit 3c54ecb

Browse files
damianpumarleiyrenataliaElv
authored
✨ Add custom messages, WIP: Translations (#5403)
Co-authored-by: Leire <[email protected]> Co-authored-by: Natalia Elvira <[email protected]>
1 parent 10ff13f commit 3c54ecb

29 files changed

+564
-112
lines changed

.github/workflows/argilla-frontend.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,24 @@ jobs:
2323
- name: Checkout Code 🛎
2424
uses: actions/checkout@v4
2525

26-
- name: Setup Node.js
26+
- name: Setup Node.js ⚙️
2727
uses: actions/setup-node@v4
2828
with:
2929
node-version: 20
3030

31-
- name: Run tests
31+
- name: Install dependencies 📦
3232
run: |
3333
npm install
34+
35+
- name: Run lint 🧹
36+
run: |
3437
npm run lint
38+
39+
- name: Run tests 🧪
40+
run: |
3541
npm run test
3642
37-
- name: Build package
43+
- name: Build package 📦
3844
env:
3945
# BASE_URL is used in the server to support parameterizable base root path
4046
# See scripts/build_frontend.sh

argilla-frontend/components/features/annotation/container/RecordFeedbackTaskAndQuestionnaire.vue

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
:dataset-vectors="datasetVectors"
1111
:records="records"
1212
:record="record"
13-
:no-records-message="noRecordsMessage"
13+
:records-message="recordsMessage"
1414
:status-class="statusClass"
1515
@on-submit-responses="goToNext"
1616
@on-discard-responses="goToNext"
@@ -21,7 +21,7 @@
2121
:dataset-vectors="datasetVectors"
2222
:records="records"
2323
:record="record"
24-
:no-records-message="noRecordsMessage"
24+
:records-message="recordsMessage"
2525
:status-class="statusClass"
2626
@on-submit-responses="goToNext"
2727
@on-discard-responses="goToNext"
@@ -48,17 +48,6 @@ export default {
4848
record() {
4949
return this.records.getRecordOn(this.recordCriteria.committed.page);
5050
},
51-
noMoreDataMessage() {
52-
return `You've reached the end of the data for the ${this.recordCriteria.committed.status} queue.`;
53-
},
54-
noRecordsMessage() {
55-
const { status } = this.recordCriteria.committed;
56-
57-
if (this.recordCriteria.isFilteredByText)
58-
return `You have no ${status} records matching the search input`;
59-
60-
return `You have no ${status} records`;
61-
},
6251
statusClass() {
6352
return `--${this.record?.status}`;
6453
},
@@ -86,17 +75,7 @@ export default {
8675
8776
this.fetching = true;
8877
89-
const isNextRecordExist = await this.paginateRecords(this.recordCriteria);
90-
91-
if (!isNextRecordExist) {
92-
setTimeout(() => {
93-
this.$notification.notify({
94-
message: this.noMoreDataMessage,
95-
numberOfChars: this.noMoreDataMessage.length,
96-
type: "info",
97-
});
98-
}, 100);
99-
}
78+
await this.paginateRecords(this.recordCriteria);
10079
10180
this.fetching = false;
10281
},

argilla-frontend/components/features/annotation/container/fields/RecordStatus.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,24 +29,24 @@ export default {
2929
switch (this.record.status) {
3030
case "pending":
3131
return {
32-
name: this.$t("recordStatus.pending"),
32+
name: this.$tc("recordStatus.pending", 1),
3333
class: "--pending",
3434
};
3535
case "draft":
3636
return {
37-
name: this.$t("recordStatus.draft"),
37+
name: this.$tc("recordStatus.draft", 1),
3838
class: "--draft",
3939
};
4040
4141
case "discarded":
4242
return {
43-
name: this.$t("recordStatus.discarded"),
43+
name: this.$tc("recordStatus.discarded", 1),
4444
class: "--discarded",
4545
};
4646
4747
case "submitted":
4848
return {
49-
name: this.$t("recordStatus.submitted"),
49+
name: this.$tc("recordStatus.submitted", 1),
5050
class: "--submitted",
5151
};
5252
}
@@ -64,6 +64,7 @@ export default {
6464
border-radius: $border-radius-rounded;
6565
}
6666
.status-tag {
67+
text-transform: capitalize;
6768
display: flex;
6869
align-items: center;
6970
gap: $base-space;

argilla-frontend/components/features/annotation/container/mode/BulkAnnotation.vue

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,10 @@
8686
/>
8787
<PaginationFeedbackTask :recordCriteria="recordCriteria" />
8888
</div>
89-
<div
90-
ref="bulkScrollableArea"
91-
class="bulk__records snap"
92-
v-if="records.hasRecordsToAnnotate"
93-
>
89+
<div v-if="recordsMessage" class="wrapper--empty">
90+
<p class="wrapper__text --heading3" v-html="recordsMessage" />
91+
</div>
92+
<div ref="bulkScrollableArea" class="bulk__records snap" v-else>
9493
<Record
9594
class="snap-child"
9695
:class="{
@@ -106,9 +105,6 @@
106105
@on-select-record="onSelectRecord"
107106
/>
108107
</div>
109-
<div v-else class="wrapper--empty">
110-
<p class="wrapper__text --heading3" v-text="noRecordsMessage" />
111-
</div>
112108
</section>
113109
</template>
114110
<template #downHeader>
@@ -220,9 +216,8 @@ export default {
220216
record: {
221217
type: Object,
222218
},
223-
noRecordsMessage: {
219+
recordsMessage: {
224220
type: String,
225-
required: true,
226221
},
227222
statusClass: {
228223
type: String,
@@ -493,9 +488,11 @@ export default {
493488
}
494489
&__text {
495490
color: $black-54;
491+
max-width: 80%;
496492
}
497493
&--empty {
498494
width: 100%;
495+
text-align: center;
499496
height: 80vh;
500497
display: flex;
501498
align-items: center;

argilla-frontend/components/features/annotation/container/mode/FocusAnnotation.vue

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@
2525
<div class="wrapper__records__header">
2626
<PaginationFeedbackTask :recordCriteria="recordCriteria" />
2727
</div>
28+
<div v-if="recordsMessage" class="wrapper--empty">
29+
<p class="wrapper__text --heading3" v-html="recordsMessage" />
30+
</div>
2831
<Record
29-
v-if="records.hasRecordsToAnnotate"
32+
v-else
3033
:datasetVectors="datasetVectors"
3134
:recordCriteria="recordCriteria"
3235
:record="record"
3336
/>
34-
<div v-else class="wrapper--empty">
35-
<p class="wrapper__text --heading3" v-text="noRecordsMessage" />
36-
</div>
3737
</section>
3838
</template>
3939
<template #downHeader>
@@ -119,9 +119,8 @@ export default {
119119
record: {
120120
type: Object,
121121
},
122-
noRecordsMessage: {
122+
recordsMessage: {
123123
type: String,
124-
required: true,
125124
},
126125
statusClass: {
127126
type: String,
@@ -202,9 +201,11 @@ export default {
202201
}
203202
&__text {
204203
color: $black-54;
204+
max-width: 80%;
205205
}
206206
&--empty {
207207
width: 100%;
208+
text-align: center;
208209
height: 80vh;
209210
display: flex;
210211
align-items: center;

argilla-frontend/components/features/annotation/container/mode/useBulkAnnotationViewModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const useBulkAnnotationViewModel = ({
2525
const isSubmitting = ref(false);
2626
const bulkAnnotationUseCase = useResolve(BulkAnnotationUseCase);
2727

28-
const t = useTranslate();
28+
const { t } = useTranslate();
2929

3030
const checkIfSomeFilterIsActive = (criteria: RecordCriteria) => {
3131
return (

argilla-frontend/components/features/annotation/container/useRecordFeedbackTaskViewModel.ts

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { useResolve } from "ts-injecty";
22
import { ref, onBeforeMount } from "vue-demi";
3+
import { useRecordMessages } from "./useRecordsMessages";
34
import { LoadRecordsToAnnotateUseCase } from "@/v1/domain/usecases/load-records-to-annotate-use-case";
45
import { useRecords } from "@/v1/infrastructure/storage/RecordsStorage";
56
import { RecordCriteria } from "@/v1/domain/entities/record/RecordCriteria";
@@ -11,6 +12,11 @@ export const useRecordFeedbackTaskViewModel = ({
1112
}: {
1213
recordCriteria: RecordCriteria;
1314
}) => {
15+
const { getMessagesForLoading, getMessageForPagination } =
16+
useRecordMessages(recordCriteria);
17+
18+
const recordsMessage = ref<string | null>(null);
19+
1420
const getDatasetVectorsUseCase = useResolve(GetDatasetVectorsUseCase);
1521
const loadRecordsUseCase = useResolve(LoadRecordsToAnnotateUseCase);
1622

@@ -19,22 +25,22 @@ export const useRecordFeedbackTaskViewModel = ({
1925

2026
const loadRecords = async (criteria: RecordCriteria) => {
2127
try {
22-
await loadRecordsUseCase.load(criteria);
28+
const newRecords = await loadRecordsUseCase.load(criteria);
29+
30+
recordsMessage.value = getMessagesForLoading(newRecords);
2331
} catch (err) {
2432
criteria.reset();
2533
}
2634
};
2735

2836
const paginateRecords = async (criteria: RecordCriteria) => {
29-
let isNextRecordExist = false;
30-
3137
try {
32-
isNextRecordExist = await loadRecordsUseCase.paginate(criteria);
38+
const isNextRecordExist = await loadRecordsUseCase.paginate(criteria);
39+
40+
recordsMessage.value = getMessageForPagination(isNextRecordExist);
3341
} catch (err) {
3442
criteria.reset();
3543
}
36-
37-
return isNextRecordExist;
3844
};
3945

4046
const loadVectors = async () => {
@@ -52,5 +58,6 @@ export const useRecordFeedbackTaskViewModel = ({
5258
datasetVectors,
5359
loadRecords,
5460
paginateRecords,
61+
recordsMessage,
5562
};
5663
};

0 commit comments

Comments
 (0)