galadrim-feedback 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -0
- package/dist/index.cjs.js +56877 -0
- package/dist/index.es.js +56875 -0
- package/dist/src/index.css +7 -0
- package/dist/types/App.d.ts +3 -0
- package/dist/types/components/buttons/IconButton.d.ts +6 -0
- package/dist/types/components/buttons/PlusButton.d.ts +5 -0
- package/dist/types/components/feedback/FeedbackItem.d.ts +4 -0
- package/dist/types/components/misc/Avatar.d.ts +3 -0
- package/dist/types/components/misc/Modal.d.ts +6 -0
- package/dist/types/pages/FeedbacksCanvas.d.ts +7 -0
- package/dist/types/pages/Overlay.d.ts +9 -0
- package/dist/types/pages/Root.d.ts +2 -0
- package/dist/types/services/api.d.ts +2 -0
- package/dist/types/services/feedback.d.ts +9 -0
- package/eslint.config.js +28 -0
- package/package.json +47 -0
- package/rollup.config.js +39 -0
- package/src/App.tsx +16 -0
- package/src/components/buttons/IconButton.tsx +27 -0
- package/src/components/buttons/PlusButton.tsx +20 -0
- package/src/components/feedback/FeedbackItem.tsx +89 -0
- package/src/components/misc/Avatar.tsx +3 -0
- package/src/components/misc/Modal.tsx +43 -0
- package/src/index.css +7 -0
- package/src/pages/FeedbacksCanvas.tsx +38 -0
- package/src/pages/Overlay.tsx +26 -0
- package/src/pages/Root.tsx +128 -0
- package/src/services/api.ts +22 -0
- package/src/services/feedback.ts +62 -0
- package/src/types/types.d.ts +16 -0
- package/tailwind.config.js +46 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
2
|
+
import api from "./api";
|
|
3
|
+
import { Feedback, FeedbackPayload } from "../types/types";
|
|
4
|
+
|
|
5
|
+
export const fetchFeedbacks = async () => {
|
|
6
|
+
const response = await api.get<Feedback[]>("/feedback");
|
|
7
|
+
return response.data;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const createFeedback = async (feedback: FeedbackPayload) => {
|
|
11
|
+
const response = await api.post("/feedback", feedback);
|
|
12
|
+
return response.data;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const updateFeedback = async (feedback: FeedbackPayload) => {
|
|
16
|
+
const response = await api.put("/feedback", feedback);
|
|
17
|
+
return response.data;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const deleteFeedback = async (feedback: Feedback) => {
|
|
21
|
+
const response = await api.delete(`/feedback/${feedback.id}`);
|
|
22
|
+
return response.data;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const useFeedbacks = () => {
|
|
26
|
+
return useQuery({
|
|
27
|
+
queryKey: ["feedbacks"],
|
|
28
|
+
queryFn: fetchFeedbacks,
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const useCreateFeedback = () => {
|
|
33
|
+
const queryClient = useQueryClient();
|
|
34
|
+
return useMutation({
|
|
35
|
+
mutationFn: createFeedback,
|
|
36
|
+
onSuccess: () => {
|
|
37
|
+
console.log("Feedback created");
|
|
38
|
+
|
|
39
|
+
return queryClient.invalidateQueries({ queryKey: ["feedbacks"] });
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const useUpdateFeedback = () => {
|
|
45
|
+
const queryClient = useQueryClient();
|
|
46
|
+
return useMutation({
|
|
47
|
+
mutationFn: updateFeedback,
|
|
48
|
+
onSuccess: () => {
|
|
49
|
+
return queryClient.invalidateQueries({ queryKey: ["feedbacks"] });
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export const useDeleteFeedback = () => {
|
|
55
|
+
const queryClient = useQueryClient();
|
|
56
|
+
return useMutation({
|
|
57
|
+
mutationFn: deleteFeedback,
|
|
58
|
+
onSuccess: () => {
|
|
59
|
+
return queryClient.invalidateQueries({ queryKey: ["feedbacks"] });
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface FeedbackPayload {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
screenWidth: number;
|
|
5
|
+
screenHeight: number;
|
|
6
|
+
elementId: string;
|
|
7
|
+
elementIndex: number;
|
|
8
|
+
comment: string;
|
|
9
|
+
path: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface Feedback extends FeedbackPayload {
|
|
13
|
+
id: string;
|
|
14
|
+
createdAt: Date;
|
|
15
|
+
updatedAt: Date;
|
|
16
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** @type {import('tailwindcss').Config} */
|
|
2
|
+
export default {
|
|
3
|
+
content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
|
|
4
|
+
theme: {
|
|
5
|
+
extend: {
|
|
6
|
+
colors: {
|
|
7
|
+
gray: {
|
|
8
|
+
50: "#F2F2F2",
|
|
9
|
+
75: "#F4F5F7",
|
|
10
|
+
100: "#E2E8F0",
|
|
11
|
+
200: "#EAECF0",
|
|
12
|
+
300: "#676D78",
|
|
13
|
+
400: "#343D4B",
|
|
14
|
+
500: "#010C1E",
|
|
15
|
+
600: "#475467",
|
|
16
|
+
700: "#CBD5E1",
|
|
17
|
+
900: "#101828",
|
|
18
|
+
},
|
|
19
|
+
blue: {
|
|
20
|
+
50: "#F5FAFF",
|
|
21
|
+
100: "#EBF5FF",
|
|
22
|
+
500: "#0085FF",
|
|
23
|
+
},
|
|
24
|
+
red: {
|
|
25
|
+
100: "#FFD3E0",
|
|
26
|
+
500: "#FF2462",
|
|
27
|
+
},
|
|
28
|
+
rose: {
|
|
29
|
+
100: "#FFD3E0",
|
|
30
|
+
200: "#FFA7C0",
|
|
31
|
+
},
|
|
32
|
+
orange: {
|
|
33
|
+
50: "#FEF6EE",
|
|
34
|
+
200: "#F9DBAF",
|
|
35
|
+
700: "#B93815",
|
|
36
|
+
},
|
|
37
|
+
green: {
|
|
38
|
+
50: "#ECFDF3",
|
|
39
|
+
200: "#ABEFC6",
|
|
40
|
+
700: "#067647",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
plugins: [],
|
|
46
|
+
};
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2017",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"jsx": "react-jsx",
|
|
6
|
+
// Generate type definitions
|
|
7
|
+
"declaration": true,
|
|
8
|
+
"declarationDir": "dist/types",
|
|
9
|
+
"outDir": "dist",
|
|
10
|
+
"moduleResolution": "node",
|
|
11
|
+
"isolatedModules": true,
|
|
12
|
+
"esModuleInterop": true,
|
|
13
|
+
"skipLibCheck": true,
|
|
14
|
+
"strict": true
|
|
15
|
+
},
|
|
16
|
+
"include": ["src"],
|
|
17
|
+
"exclude": ["node_modules", "**/*.test.*"]
|
|
18
|
+
}
|