Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/FeedBack/Snackers.vue
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
variant="flat"
size="20"
:color="feedback.type"
@click="feedback_store.delete_feedback(index)"
@click="feedback_store.delete_feedback(feedback.id)"
>
<v-icon icon="mdi-close" size="20" color="white" />
</v-btn>
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"pinia": "^2.2.2",
"sass": "^1.77.8",
"semver": "^7.6.3",
"uuid": "^11.1.0",
"vue-recaptcha": "^2.0.3",
"vue3-carousel": "^0.3.3"
},
Expand Down
19 changes: 17 additions & 2 deletions stores/feedback.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,41 @@
import { v4 as uuidv4 } from "uuid"

export const use_feedback_store = defineStore("feedback", {
state: () => ({
feedbacks: [],
server_error: false,
feedbacks_timeout_miliseconds: 5000,
}),
actions: {
async add_error(code, route, name, description) {
const feedbackId = uuidv4()
await this.feedbacks.push({
id: feedbackId,
type: "error",
code,
route,
name,
description,
})
setTimeout(() => {
this.delete_feedback(feedbackId)
}, this.feedbacks_timeout_miliseconds)
},
async add_success(description) {
const feedbackId = uuidv4()
await this.feedbacks.push({
id: feedbackId,
type: "success",
description,
})
setTimeout(() => {
this.delete_feedback(feedbackId)
}, this.feedbacks_timeout_miliseconds)
},
async delete_feedback(feedback_index) {
await this.feedbacks.splice(feedback_index, 1)
async delete_feedback(feedbackId) {
this.feedbacks = this.feedbacks.filter(
(feedback) => feedback.id !== feedbackId,
)
},
async delete_server_error() {
this.server_error = false
Expand Down
21 changes: 21 additions & 0 deletions test/stores/Feedback.nuxt.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,32 @@ describe("Feedback Store", () => {
})
})

describe("add_error", () => {
test("test feedbacks_timeout", () => {
feedback_store.feedbacks_timeout_miliseconds = 500
feedback_store.add_error(
500,
"/test",
"test message",
"test description",
)
expect(feedback_store.feedbacks.length).toBe(1)
setTimeout(() => {
expect(feedback_store.feedbacks.length).toBe(0)
}, 1000)
})
})

describe("add_success", () => {
test("test add_success", () => {
feedback_store.feedbacks_timeout_miliseconds = 500
feedback_store.add_success("test description")
expect(feedback_store.feedbacks.length).toBe(1)
expect(feedback_store.feedbacks[0].type).toBe("success")

setTimeout(() => {
expect(feedback_store.feedbacks.length).toBe(0)
}, 1000)
})
})
describe("delete_feedback", () => {
Expand Down
Loading