analytica-frontend-lib 1.2.57 → 1.2.58
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/dist/hooks/useActivityModels/index.d.ts +6 -6
- package/dist/hooks/useActivityModels.d.ts +6 -6
- package/dist/index.js +146 -57
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +136 -47
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -12132,6 +12132,7 @@ var createQuestionsListHook = (apiClient) => {
|
|
|
12132
12132
|
|
|
12133
12133
|
// src/components/ActivityCreate/ActivityCreate.tsx
|
|
12134
12134
|
import { useCallback as useCallback5, useEffect as useEffect23, useMemo as useMemo11, useState as useState24, useRef as useRef15 } from "react";
|
|
12135
|
+
import { useParams, useNavigate } from "react-router-dom";
|
|
12135
12136
|
import { Funnel } from "phosphor-react";
|
|
12136
12137
|
|
|
12137
12138
|
// src/components/ActivityListQuestions/ActivityListQuestions.tsx
|
|
@@ -12466,6 +12467,26 @@ function formatTime(date) {
|
|
|
12466
12467
|
const minutes = date.getMinutes().toString().padStart(2, "0");
|
|
12467
12468
|
return `${hours}:${minutes}`;
|
|
12468
12469
|
}
|
|
12470
|
+
function getTypeFromUrl(type) {
|
|
12471
|
+
switch (type) {
|
|
12472
|
+
case "RASCUNHO" /* RASCUNHO */:
|
|
12473
|
+
return "rascunho";
|
|
12474
|
+
case "MODELO" /* MODELO */:
|
|
12475
|
+
return "modelo";
|
|
12476
|
+
default:
|
|
12477
|
+
return "rascunho";
|
|
12478
|
+
}
|
|
12479
|
+
}
|
|
12480
|
+
function getTypeFromUrlString(type) {
|
|
12481
|
+
switch (type) {
|
|
12482
|
+
case "rascunho":
|
|
12483
|
+
return "RASCUNHO" /* RASCUNHO */;
|
|
12484
|
+
case "modelo":
|
|
12485
|
+
return "MODELO" /* MODELO */;
|
|
12486
|
+
default:
|
|
12487
|
+
return "RASCUNHO" /* RASCUNHO */;
|
|
12488
|
+
}
|
|
12489
|
+
}
|
|
12469
12490
|
function convertQuestionToPreview(question) {
|
|
12470
12491
|
const subjectInfo = question.knowledgeMatrix && question.knowledgeMatrix.length > 0 ? {
|
|
12471
12492
|
subjectName: question.knowledgeMatrix[0].subject?.name || void 0,
|
|
@@ -12729,14 +12750,12 @@ var CreateActivity = ({
|
|
|
12729
12750
|
apiClient,
|
|
12730
12751
|
institutionId,
|
|
12731
12752
|
isDark,
|
|
12732
|
-
activity,
|
|
12733
|
-
onActivityChange,
|
|
12734
|
-
loading = false,
|
|
12735
|
-
preFilters,
|
|
12736
12753
|
onBack,
|
|
12737
12754
|
onCreateActivity,
|
|
12738
12755
|
onSaveModel
|
|
12739
12756
|
}) => {
|
|
12757
|
+
const params = useParams();
|
|
12758
|
+
const navigate = useNavigate();
|
|
12740
12759
|
const applyFilters = useQuestionFiltersStore(
|
|
12741
12760
|
(state) => state.applyFilters
|
|
12742
12761
|
);
|
|
@@ -12750,26 +12769,18 @@ var CreateActivity = ({
|
|
|
12750
12769
|
(state) => state.setDraftFilters
|
|
12751
12770
|
);
|
|
12752
12771
|
const addToast = ToastStore_default((state) => state.addToast);
|
|
12753
|
-
const
|
|
12754
|
-
|
|
12755
|
-
|
|
12756
|
-
},
|
|
12757
|
-
[setDraftFilters]
|
|
12772
|
+
const [activity, setActivity] = useState24(null);
|
|
12773
|
+
const [preFilters, setPreFilters] = useState24(
|
|
12774
|
+
null
|
|
12758
12775
|
);
|
|
12759
|
-
const
|
|
12760
|
-
applyFilters();
|
|
12761
|
-
}, [applyFilters]);
|
|
12776
|
+
const [loading, setLoading] = useState24(false);
|
|
12762
12777
|
const [questions, setQuestions] = useState24([]);
|
|
12763
12778
|
const [loadingInitialQuestions, setLoadingInitialQuestions] = useState24(false);
|
|
12764
|
-
const [draftId, setDraftId] = useState24(
|
|
12765
|
-
activity?.id ? activity.id : null
|
|
12766
|
-
);
|
|
12779
|
+
const [draftId, setDraftId] = useState24(params.id || null);
|
|
12767
12780
|
const [activityType, setActivityType] = useState24(
|
|
12768
|
-
|
|
12769
|
-
);
|
|
12770
|
-
const [lastSavedAt, setLastSavedAt] = useState24(
|
|
12771
|
-
activity?.updatedAt ? new Date(activity.updatedAt) : null
|
|
12781
|
+
getTypeFromUrlString(params.type)
|
|
12772
12782
|
);
|
|
12783
|
+
const [lastSavedAt, setLastSavedAt] = useState24(null);
|
|
12773
12784
|
const [isSaving, setIsSaving] = useState24(false);
|
|
12774
12785
|
const [isSendModalOpen, setIsSendModalOpen] = useState24(false);
|
|
12775
12786
|
const [categories, setCategories] = useState24([]);
|
|
@@ -12779,6 +12790,16 @@ var CreateActivity = ({
|
|
|
12779
12790
|
const lastSavedFiltersRef = useRef15(null);
|
|
12780
12791
|
const lastSavedQuestionsRef = useRef15([]);
|
|
12781
12792
|
const hasAppliedInitialFiltersRef = useRef15(false);
|
|
12793
|
+
const lastFetchedActivityIdRef = useRef15(null);
|
|
12794
|
+
const handleFiltersChange = useCallback5(
|
|
12795
|
+
(filters) => {
|
|
12796
|
+
setDraftFilters(filters);
|
|
12797
|
+
},
|
|
12798
|
+
[setDraftFilters]
|
|
12799
|
+
);
|
|
12800
|
+
const handleApplyFilters = useCallback5(() => {
|
|
12801
|
+
applyFilters();
|
|
12802
|
+
}, [applyFilters]);
|
|
12782
12803
|
const useActivityFiltersData = createUseActivityFiltersData(apiClient);
|
|
12783
12804
|
const { knowledgeAreas, loadKnowledgeAreas } = useActivityFiltersData({
|
|
12784
12805
|
selectedSubjects: [],
|
|
@@ -12805,6 +12826,49 @@ var CreateActivity = ({
|
|
|
12805
12826
|
useEffect23(() => {
|
|
12806
12827
|
hasAppliedInitialFiltersRef.current = false;
|
|
12807
12828
|
}, [activity?.id, activity?.filters, resolvedPreFilters]);
|
|
12829
|
+
useEffect23(() => {
|
|
12830
|
+
const fetchActivityDraft = async () => {
|
|
12831
|
+
if (params.id && params.id !== lastFetchedActivityIdRef.current) {
|
|
12832
|
+
setLoading(true);
|
|
12833
|
+
try {
|
|
12834
|
+
const response = await apiClient.get(`/activity-drafts/${params.id}`);
|
|
12835
|
+
const activityData = "data" in response.data ? response.data.data : response.data;
|
|
12836
|
+
setActivity(activityData);
|
|
12837
|
+
setPreFilters(activityData.filters);
|
|
12838
|
+
setDraftId(activityData.id || null);
|
|
12839
|
+
setActivityType(activityData.type);
|
|
12840
|
+
if (activityData.updatedAt) {
|
|
12841
|
+
setLastSavedAt(new Date(activityData.updatedAt));
|
|
12842
|
+
}
|
|
12843
|
+
lastFetchedActivityIdRef.current = params.id;
|
|
12844
|
+
} catch (error) {
|
|
12845
|
+
console.error("Erro ao buscar rascunho da atividade:", error);
|
|
12846
|
+
addToast({
|
|
12847
|
+
title: "Erro ao carregar atividade",
|
|
12848
|
+
description: error instanceof Error ? error.message : "Ocorreu um erro ao carregar a atividade. Tente novamente.",
|
|
12849
|
+
variant: "solid",
|
|
12850
|
+
action: "warning",
|
|
12851
|
+
position: "top-right"
|
|
12852
|
+
});
|
|
12853
|
+
} finally {
|
|
12854
|
+
setLoading(false);
|
|
12855
|
+
}
|
|
12856
|
+
}
|
|
12857
|
+
};
|
|
12858
|
+
fetchActivityDraft();
|
|
12859
|
+
}, [params.id, apiClient, addToast]);
|
|
12860
|
+
useEffect23(() => {
|
|
12861
|
+
if (activity?.id && activity?.type) {
|
|
12862
|
+
const urlType = getTypeFromUrl(activity.type);
|
|
12863
|
+
const currentUrlType = params.type;
|
|
12864
|
+
const currentUrlId = params.id;
|
|
12865
|
+
if (!currentUrlType || !currentUrlId || currentUrlId !== activity.id || currentUrlType !== urlType) {
|
|
12866
|
+
navigate(`/criar-atividade/${urlType}/${activity.id}`, {
|
|
12867
|
+
replace: true
|
|
12868
|
+
});
|
|
12869
|
+
}
|
|
12870
|
+
}
|
|
12871
|
+
}, [activity?.id, activity?.type, params.type, params.id, navigate]);
|
|
12808
12872
|
const validateSaveConditions = useCallback5(() => {
|
|
12809
12873
|
if (questions.length === 0 && !hasFirstSaveBeenDone.current) {
|
|
12810
12874
|
return false;
|
|
@@ -12842,6 +12906,33 @@ var CreateActivity = ({
|
|
|
12842
12906
|
setLastSavedAt(
|
|
12843
12907
|
savedDraft?.updatedAt ? new Date(savedDraft.updatedAt) : /* @__PURE__ */ new Date()
|
|
12844
12908
|
);
|
|
12909
|
+
if (savedDraft) {
|
|
12910
|
+
setActivity((prevActivity) => {
|
|
12911
|
+
if (!prevActivity || prevActivity.id !== savedDraft.id) {
|
|
12912
|
+
return {
|
|
12913
|
+
id: savedDraft.id,
|
|
12914
|
+
type: savedDraft.type,
|
|
12915
|
+
title: savedDraft.title,
|
|
12916
|
+
subjectId: savedDraft.subjectId,
|
|
12917
|
+
filters: savedDraft.filters,
|
|
12918
|
+
questionIds: questions.map((q) => q.id),
|
|
12919
|
+
updatedAt: savedDraft.updatedAt
|
|
12920
|
+
};
|
|
12921
|
+
}
|
|
12922
|
+
return {
|
|
12923
|
+
...prevActivity,
|
|
12924
|
+
type: savedDraft.type,
|
|
12925
|
+
title: savedDraft.title,
|
|
12926
|
+
subjectId: savedDraft.subjectId,
|
|
12927
|
+
questionIds: questions.map((q) => q.id),
|
|
12928
|
+
updatedAt: savedDraft.updatedAt
|
|
12929
|
+
};
|
|
12930
|
+
});
|
|
12931
|
+
setActivityType(savedDraft.type);
|
|
12932
|
+
if (savedDraft.id) {
|
|
12933
|
+
lastFetchedActivityIdRef.current = savedDraft.id;
|
|
12934
|
+
}
|
|
12935
|
+
}
|
|
12845
12936
|
if (payload.type === "MODELO" /* MODELO */ && onSaveModel && response?.data) {
|
|
12846
12937
|
onSaveModel(response.data);
|
|
12847
12938
|
}
|
|
@@ -12877,30 +12968,36 @@ var CreateActivity = ({
|
|
|
12877
12968
|
[]
|
|
12878
12969
|
);
|
|
12879
12970
|
const updateStateAfterSave = useCallback5(
|
|
12880
|
-
(savedDraft, fullResponse) => {
|
|
12971
|
+
(savedDraft, fullResponse, wasNewDraft = false) => {
|
|
12881
12972
|
setDraftId(savedDraft.id);
|
|
12882
12973
|
setLastSavedAt(
|
|
12883
12974
|
savedDraft.updatedAt ? new Date(savedDraft.updatedAt) : /* @__PURE__ */ new Date()
|
|
12884
12975
|
);
|
|
12885
12976
|
lastSavedQuestionsRef.current = questions;
|
|
12886
12977
|
lastSavedFiltersRef.current = appliedFilters;
|
|
12978
|
+
const updatedActivity = {
|
|
12979
|
+
id: savedDraft.id,
|
|
12980
|
+
type: savedDraft.type,
|
|
12981
|
+
title: savedDraft.title,
|
|
12982
|
+
subjectId: savedDraft.subjectId,
|
|
12983
|
+
filters: savedDraft.filters,
|
|
12984
|
+
questionIds: questions.map((q) => q.id),
|
|
12985
|
+
updatedAt: savedDraft.updatedAt
|
|
12986
|
+
};
|
|
12987
|
+
setActivity(updatedActivity);
|
|
12988
|
+
setActivityType(savedDraft.type);
|
|
12989
|
+
lastFetchedActivityIdRef.current = savedDraft.id;
|
|
12990
|
+
if (wasNewDraft && savedDraft.id) {
|
|
12991
|
+
const urlType = getTypeFromUrl(savedDraft.type);
|
|
12992
|
+
navigate(`/criar-atividade/${urlType}/${savedDraft.id}`, {
|
|
12993
|
+
replace: true
|
|
12994
|
+
});
|
|
12995
|
+
}
|
|
12887
12996
|
if (savedDraft.type === "MODELO" /* MODELO */ && onSaveModel && fullResponse) {
|
|
12888
12997
|
onSaveModel(fullResponse);
|
|
12889
12998
|
}
|
|
12890
|
-
if (onActivityChange) {
|
|
12891
|
-
const updatedActivity = {
|
|
12892
|
-
id: savedDraft.id,
|
|
12893
|
-
type: savedDraft.type,
|
|
12894
|
-
title: savedDraft.title,
|
|
12895
|
-
subjectId: savedDraft.subjectId,
|
|
12896
|
-
filters: savedDraft.filters,
|
|
12897
|
-
questionIds: questions.map((q) => q.id),
|
|
12898
|
-
updatedAt: savedDraft.updatedAt
|
|
12899
|
-
};
|
|
12900
|
-
onActivityChange(updatedActivity);
|
|
12901
|
-
}
|
|
12902
12999
|
},
|
|
12903
|
-
[questions, appliedFilters,
|
|
13000
|
+
[questions, appliedFilters, onSaveModel, navigate]
|
|
12904
13001
|
);
|
|
12905
13002
|
const saveDraft = useCallback5(async () => {
|
|
12906
13003
|
if (!validateSaveConditions()) {
|
|
@@ -12919,7 +13016,7 @@ var CreateActivity = ({
|
|
|
12919
13016
|
);
|
|
12920
13017
|
hasFirstSaveBeenDone.current = true;
|
|
12921
13018
|
const savedDraft = extractDraftFromResponse(response);
|
|
12922
|
-
updateStateAfterSave(savedDraft, response?.data);
|
|
13019
|
+
updateStateAfterSave(savedDraft, response?.data, true);
|
|
12923
13020
|
} catch (error) {
|
|
12924
13021
|
console.error("\u274C Erro ao salvar rascunho:", error);
|
|
12925
13022
|
const errorMessage = error instanceof Error ? error.message : "Ocorreu um erro ao salvar o rascunho. Tente novamente.";
|
|
@@ -12946,14 +13043,6 @@ var CreateActivity = ({
|
|
|
12946
13043
|
const handleSaveModel = useCallback5(async () => {
|
|
12947
13044
|
setActivityType("MODELO" /* MODELO */);
|
|
12948
13045
|
}, []);
|
|
12949
|
-
useEffect23(() => {
|
|
12950
|
-
if (activity?.id) {
|
|
12951
|
-
setDraftId(activity.id);
|
|
12952
|
-
}
|
|
12953
|
-
if (activity?.updatedAt) {
|
|
12954
|
-
setLastSavedAt(new Date(activity.updatedAt));
|
|
12955
|
-
}
|
|
12956
|
-
}, [activity?.id, activity?.updatedAt]);
|
|
12957
13046
|
useEffect23(() => {
|
|
12958
13047
|
loadKnowledgeAreas();
|
|
12959
13048
|
}, [loadKnowledgeAreas]);
|
|
@@ -13200,7 +13289,7 @@ var CreateActivity = ({
|
|
|
13200
13289
|
/* @__PURE__ */ jsx61(
|
|
13201
13290
|
ActivityCreateHeader,
|
|
13202
13291
|
{
|
|
13203
|
-
activity,
|
|
13292
|
+
activity: activity || void 0,
|
|
13204
13293
|
activityType,
|
|
13205
13294
|
lastSavedAt,
|
|
13206
13295
|
isSaving,
|
|
@@ -18824,14 +18913,14 @@ var QuizListResultByMateria = ({
|
|
|
18824
18913
|
};
|
|
18825
18914
|
|
|
18826
18915
|
// src/components/BreadcrumbMenu/BreadcrumbMenu.tsx
|
|
18827
|
-
import { useNavigate } from "react-router-dom";
|
|
18916
|
+
import { useNavigate as useNavigate2 } from "react-router-dom";
|
|
18828
18917
|
import { jsx as jsx77 } from "react/jsx-runtime";
|
|
18829
18918
|
var BreadcrumbMenu = ({
|
|
18830
18919
|
breadcrumbs,
|
|
18831
18920
|
onBreadcrumbClick,
|
|
18832
18921
|
className = "!px-0 py-4 flex-wrap w-full"
|
|
18833
18922
|
}) => {
|
|
18834
|
-
const navigate =
|
|
18923
|
+
const navigate = useNavigate2();
|
|
18835
18924
|
const handleClick = (breadcrumb, index) => {
|
|
18836
18925
|
if (onBreadcrumbClick) {
|
|
18837
18926
|
onBreadcrumbClick(breadcrumb, index);
|
|
@@ -19255,9 +19344,9 @@ function useAppInitialization() {
|
|
|
19255
19344
|
|
|
19256
19345
|
// src/hooks/useAppContent.ts
|
|
19257
19346
|
import { useCallback as useCallback14, useEffect as useEffect38, useMemo as useMemo20 } from "react";
|
|
19258
|
-
import { useNavigate as
|
|
19347
|
+
import { useNavigate as useNavigate3 } from "react-router-dom";
|
|
19259
19348
|
function useAppContent(config) {
|
|
19260
|
-
const navigate =
|
|
19349
|
+
const navigate = useNavigate3();
|
|
19261
19350
|
const { setTokens, setSessionInfo, setSelectedProfile } = useAuthStore();
|
|
19262
19351
|
const {
|
|
19263
19352
|
api,
|