Skip to content

Commit

Permalink
Merge branch 'master' into features/getSurveyString
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewtelnov authored Nov 20, 2024
2 parents e77d0e3 + fb19134 commit fa47106
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 21 deletions.
7 changes: 5 additions & 2 deletions packages/survey-core/src/actions/adaptive-container.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,11 @@ export class AdaptiveActionContainer<T extends Action = Action> extends ActionCo
}
public setActionsMode(mode: actionModeType) {
this.actions.forEach((action) => {
if (mode == "small" && action.disableShrink) return;
action.mode = mode;
if(mode == "small" && action.disableShrink) {
action.mode = "large";
} else {
action.mode = mode;
}
});
}
public dispose(): void {
Expand Down
1 change: 1 addition & 0 deletions packages/survey-core/src/dropdownListModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -633,6 +633,7 @@ export class DropdownListModel extends Base {
if (!!this.popupModel) {
this.popupModel.dispose();
}
this.htmlCleanerElement = undefined;
}

scrollToFocusedItem(): void {
Expand Down
5 changes: 5 additions & 0 deletions packages/survey-core/src/survey.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4976,6 +4976,11 @@ export class SurveyModel extends SurveyElementCore
this.rootElement = htmlElement;
this.addScrollEventListener();
}
beforeDestroySurveyElement() {
this.destroyResizeObserver();
this.removeScrollEventListener();
this.rootElement = undefined;
}
/**
* An event that is raised when the survey's width or height is changed.
*/
Expand Down
17 changes: 17 additions & 0 deletions packages/survey-core/tests/responsivityTests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -593,4 +593,21 @@ QUnit.test("check title change calls raise update", function (assert) {
assert.equal(log, "->called: true->called: true", "called from title change");
item1.title = "Test";
assert.equal(log, "->called: true->called: true");
});

QUnit.test("check actions mode is set correctly when disableShrink is set", function (assert) {
const model: AdaptiveActionContainer = new AdaptiveActionContainer();
const action = model.addAction({
disableShrink: true,
title: "test"
});
assert.equal(action.mode, "large");
model.setActionsMode("removed");
assert.equal(action.mode, "removed");
model.setActionsMode("large");
assert.equal(action.mode, "large");
model.setActionsMode("popup");
assert.equal(action.mode, "popup");
model.setActionsMode("small");
assert.equal(action.mode, "large");
});
2 changes: 1 addition & 1 deletion packages/survey-vue3-ui/src/Survey.vue
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ onMounted(() => {
onUnmounted(() => {
vueSurvey.value.stopTimer();
vueSurvey.value.rootElement = undefined as any;
vueSurvey.value.beforeDestroySurveyElement();
vueSurvey.value.renderCallback = undefined as any;
});
</script>
31 changes: 13 additions & 18 deletions packages/survey-vue3-ui/src/selectbase-item.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type { ItemValue, QuestionSelectBase } from "survey-core";
import { onMounted, type Ref } from "vue";
import { onMounted, onUnmounted, type Ref } from "vue";
import { useBase } from "./base";

export function useSelectBaseItem(
Expand All @@ -14,24 +14,19 @@ export function useSelectBaseItem(
}
}
});
useBase(
getItem,
(newValue, oldValue) => {
if (!getQuestion().isDesignMode) {
if (newValue && root.value) {
newValue.setRootElement(root.value);
}
if (oldValue) {
oldValue.setRootElement(undefined as any);
}
onUnmounted(() => {
if (!getQuestion().isDesignMode) {
getItem().setRootElement(undefined as any);
}
});
useBase(getItem, (newValue, oldValue) => {
if (!getQuestion().isDesignMode) {
if (newValue && root.value) {
newValue.setRootElement(root.value);
}
},
() => {
const item = getItem();
const question = getQuestion();
if (question && item && question.isDesignMode) {
item.setRootElement(undefined as any);
if (oldValue) {
oldValue.setRootElement(undefined as any);
}
}
);
});
}

0 comments on commit fa47106

Please sign in to comment.