decaf-dev / obsidian-dataloom

Weave together data from diverse sources and display them in different views. Inspired by Excel spreadsheets and Notion.so.
https://dataloom.xyz/
MIT License
899 stars 32 forks source link

Loom freezes after exiting cell #914

Open haShinui opened 6 months ago

haShinui commented 6 months ago

Describe the bug

So I write something in my loom text cell or I add a tag or smth like that. When I unfocus that cell, for text it would be I hit enter and i cant write anymore and no cell is focused, it just freezes and obsidian itself works, just not loom. The only way to unfreeze it is too go too a different note, so closing loom view and then back to loom. It doesnt happen all the time but if it happens its annoying

Steps to reproduce

I just use looom with blue topaz theme, the loom setting are stock . I dont know how else to reproduce.

Expected behavior

For it to work like normal, you write something, hit enter and just continue using it without any freezes.

Are you using the mobile app?

No

Obsidian debug info

SYSTEM INFO: Obsidian version: v1.4.16 Installer version: v1.4.16 Operating system: Windows 10 Home 10.0.19045 Login status: logged in Catalyst license: none Insider build toggle: off Live preview: on Legacy editor: off Base theme: dark Community theme: Blue Topaz v2023112601 Snippets enabled: 3 Restricted mode: off Plugins installed: 53 Plugins enabled: 48 1: Admonition v10.1.1 2: Annotator v0.2.10 3: Better Word Count v0.10.0 4: Checklist v2.2.13 5: Copy button for code blocks v0.1.0 6: DataLoom v8.15.10 7: Dataview v0.5.64 8: Emoji Toolbar v0.4.1 9: Hotkey Helper v0.3.18 10: Iconize v2.8.0 11: Kindle Highlights v1.9.2 12: LanguageTool Integration v0.3.6 13: Mind Map v1.1.0 14: Minimal Theme Settings v7.3.1 15: Outliner v4.8.0 16: Paste URL into selection v1.7.0 17: Periodic Notes v0.0.17 18: Recent Files v1.3.8 19: Style Settings v1.0.7 20: TagFolder v0.18.4 21: Tasks v5.3.0 22: Templater v1.18.3 23: Tracker v1.13.1 24: QuickAdd v1.6.1 25: Vimrc Support v0.9.0 26: Importer v1.5.6 27: Banners v1.3.3 28: Sortable v0.3.1 29: Projects v1.17.1 30: Actions URI v1.4.2 31: Excalidraw v2.0.10 32: Shortcuts extender v2.2.0 33: Obsidian Enhancing Export v1.9.6 34: Advanced URI v1.38.1 35: CardBoard v0.7.4 36: Quick Switcher++ v3.3.9 37: Tab Switcher v1.4.0 38: Another Quick Switcher v10.0.0 39: Homepage v3.6.0 40: React Components v0.1.6 41: Commander v0.5.1 42: Hider v1.3.1 43: Heatmap Calendar v0.6.0 44: Calendar v1.5.10 45: Day Planner v0.16.0 46: Workspaces Plus v0.3.3 47: Reminder v1.1.15 48: Create Note in Folder v1.9.2

RECOMMENDATIONS: Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets. Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

Relevant log output

/* src/obsidian/shared/styles.css */
.dataloom-modal__divider {
  margin: 1.5em 0;
}
.dataloom-modal__divider--first-child {
  margin-top: 0;
}
.dataloom-modal-text--emphasize {
  color: var(--text-accent);
}
.dataloom-modal__title {
  margin-bottom: 0;
}

/* src/obsidian/modal/welcome-modal/styles.css */
.dataloom-welcome-modal__card-container {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.dataloom-welcome-modal__card {
  display: flex;
  padding: 1em 1.5em;
  column-gap: 1.5em;
  align-items: center;
  border: 1px solid var(--background-modifier-border);
}
.dataloom-welcome-modal__card-icon {
  width: 1.5em;
  height: 1.5em;
}
.dataloom-welcome-modal__card-title {
  margin: 0;
}
.dataloom-welcome-modal__card-description {
  margin-top: 0.25em;
  margin-bottom: 0.5em;
}

/* src/obsidian/modal/whats-new-modal/styles.css */
.dataloom-whats-new-modal__spacer {
  height: 10px;
}
.dataloom-whats-new-modal__badge-container {
  margin: 20px 0px;
}
.dataloom-whats-new-modal__content strong {
  font-size: var(--font-ui-large);
}

/* src/shared/spacing/styles.css */
.dataloom-overflow--wrap {
  overflow: hidden;
  overflow-wrap: break-word;
  white-space: normal !important;
}
.dataloom-overflow--hide {
  overflow: hidden;
  white-space: nowrap;
}
.dataloom-overflow--ellipsis {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* src/react/shared/text/styles.css */
.dataloom-text {
  white-space: nowrap;
  margin: 0;
  color: var(--text-normal);
}
.dataloom-text--muted {
  color: var(--text-muted);
}
.dataloom-text--faint {
  color: var(--text-faint);
}
.dataloom-text--semibold {
  font-weight: var(--font-semibold);
}
.dataloom-text--on-accent {
  color: var(--text-on-accent);
}
.dataloom-text--error {
  color: var(--text-error);
}

/* src/react/shared/base-menu/styles.css */
.dataloom-menu {
  position: absolute;
  z-index: var(--layer-menu);
  background-color: var(--background-primary);
  font-weight: 400;
}

/* src/react/shared/stack/styles.css */
.dataloom-stack {
  display: flex;
}

/* src/react/shared/divider/styles.css */
.dataloom-hr {
  margin: 0;
}

/* src/react/shared/error-display/styles.css */
.dataloom-error {
  background-color: var(--background-secondary);
  overflow: scroll;
}
.dataloom-error--embedded-app {
  height: 100%;
}
.dataloom-error__message {
  width: 100%;
  max-height: 150px;
  overflow: scroll;
  text-align: left;
}

/* src/react/global.css */
:root {
  --dataloom-spacing--xs: 2px;
  --dataloom-spacing--sm: 4px;
  --dataloom-spacing--md: 8px;
  --dataloom-spacing--lg: 12px;
  --dataloom-spacing--xl: 16px;
  --dataloom-spacing--2xl: 24px;
  --dataloom-spacing--3xl: 36px;
  --dataloom-spacing--4xl: 48px;
  --dataloom-cell-spacing-x: var(--dataloom-spacing--sm);
  --dataloom-cell-spacing-y: var(--dataloom-spacing--lg);
  --dataloom-cell-min-height: 1.9rem;
  --dataloom-font-size--xs: 0.8rem;
  --dataloom-font-size--sm: 0.9rem;
  --dataloom-font-size--md: 1rem;
  --dataloom-font-size--lg: 1.1rem;
  --dataloom-font-size--xl: 1.3rem;
}

/* src/react/shared/icon/styles.css */
svg.dataloom-svg {
  vertical-align: middle;
}
svg.dataloom-svg--sm {
  width: var(--icon-s);
  height: var(--icon-s);
}
svg.dataloom-svg--md {
  width: var(--icon-m);
  height: var(--icon-m);
}
svg.dataloom-svg--lg {
  width: var(--icon-l);
  height: var(--icon-l);
}
svg.dataloom-svg--xl {
  width: 20px;
  height: 20px;
}

/* src/react/shared/flex/styles.css */
.dataloom-flex {
  display: flex;
  width: 100%;
}

/* src/react/shared/menu-item/styles.css */
.dataloom-menu-item {
  display: flex;
  align-items: center;
  padding: var(--dataloom-spacing--sm) var(--dataloom-spacing--lg);
  width: 100%;
}

/* src/react/loom-app/footer-cell-container/styles.css */
.dataloom-cell--footer__container {
  display: flex;
  justify-content: flex-end;
  cursor: pointer;
  overflow: hidden;
  padding: var(--dataloom-cell-spacing-x) var(--dataloom-cell-spacing-y);
}

/* src/react/loom-app/header-cell-container/column-resize/styles.css */
.dataloom-column-resize {
  position: relative;
}
.dataloom-column-resize__handle {
  position: absolute;
  height: 100%;
  right: 0;
  bottom: 0;
  width: 5px;
  cursor: col-resize;
}
.dataloom-column-resize__handle:hover {
  background-color: var(--interactive-accent);
}
.dataloom-column-resize__handle:active {
  background-color: var(--interactive-accent);
}
.dataloom-column-resize__handle--dragging {
  background-color: var(--interactive-accent);
}
.dataloom-auto-width {
  width: auto !important;
}
.dataloom-nowrap {
  white-space: nowrap !important;
}

/* src/react/shared/button/styles.css */
.dataloom-button {
  display: flex;
  align-items: center;
  width: max-content !important;
  height: max-content;
  white-space: nowrap;
  color: var(--text-normal);
  font-size: var(--font-size-normal);
  margin-right: 0;
  cursor: pointer;
}
.dataloom-button:focus-visible {
  box-shadow: none !important;
}
.dataloom-button--link {
  color: var(--link-color);
  text-decoration-line: var(--link-decoration);
  cursor: var(--cursor-link);
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
.dataloom-button--link:hover {
  box-shadow: var(--input-shadow) !important;
}
.dataloom-button--sm {
  padding: 2px !important;
}
.dataloom-button--md {
  padding: 6px !important;
}
.dataloom-button--lg {
  padding: 10px !important;
}
.dataloom-button--full-width {
  display: flex;
  justify-content: flex-start;
  width: 100% !important;
  border-radius: 0px;
}
.dataloom-button--text {
  background-color: transparent !important;
  box-shadow: none !important;
}
.dataloom-button--text:hover {
  background-color: var(--background-modifier-hover) !important;
}
.dataloom-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

/* src/react/loom-app/header-menu/number-format-submenu/styles.css */
.dataloom-number-format-submenu {
  width: 100%;
  height: 240px;
  overflow-x: auto;
  overflow-y: scroll;
}

/* src/react/shared/input/styles.css */
.dataloom-input {
  width: 100%;
  height: 100% !important;
  transition: none !important;
  font-size: var(--text-normal) !important;
  box-shadow: none !important;
}
.dataloom-input--transparent {
  background-color: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: var(--dataloom-spacing--sm) var(--dataloom-spacing--lg) !important;
}
.dataloom-input--border {
  border: 1px solid var(--table-border-color) !important;
  background-color: var(--background-secondary) !important;
}
.dataloom-input--numeric {
  text-align: right;
}
.dataloom-input--error {
  outline: 2px solid var(--background-modifier-error) !important;
  outline-offset: -2px;
}
.dataloom-input--error:focus {
  outline: 2px solid var(--background-modifier-error) !important;
}
.dataloom-input__focus-outline--default {
  outline: 2px solid var(--background-modifier-border-focus) !important;
  outline-offset: -2px;
}
.dataloom-input__focus-outline--none {
  outline: none !important;
}

/* src/react/shared/switch/styles.css */
.dataloom-switch {
  width: calc(var(--toggle-width) * 0.75);
  height: calc((var(--toggle-thumb-height) * 0.75) + (var(--toggle-border-width) * 2 * 0.75));
  transition: none !important;
}
.dataloom-switch:after {
  width: calc(var(--toggle-thumb-width) * 0.75);
  height: calc(var(--toggle-thumb-height) * 0.75);
}
.dataloom-switch.is-enabled:after {
  transform: translate3d(calc((var(--toggle-width) - var(--toggle-thumb-width) - var(--toggle-border-width)) * 0.75), 0, 0);
}
.dataloom-switch input {
  width: calc(var(--checkbox-size) * 0.75);
  height: calc(var(--checkbox-size) * 0.75);
}
.dataloom-switch:active:after {
  width: calc((var(--toggle-thumb-width) * 0.75) + (var(--toggle-border-width)));
}
.dataloom-switch:focus-visible {
  outline: 2px solid var(--text-on-accent-inverted);
  outline-offset: 0px;
}
.dataloom-switch--dark {
  outline-color: var(--text-on-accent);
}

/* src/react/loom-app/header-menu/styles.css */
.dataloom-header-menu {
  color: var(--text-normal);
}

/* src/react/loom-app/header-cell-container/styles.css */
.dataloom-cell--header__container {
  display: flex;
  justify-content: space-between;
  min-height: var(--dataloom-cell-min-height);
}
.dataloom-cell--header__inner-container {
  display: flex;
  align-items: center;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  user-select: none;
  padding: var(--dataloom-cell-spacing-x) var(--dataloom-cell-spacing-y);
  color: var(--text-normal);
}

/* src/react/loom-app/new-column-button/styles.css */
.dataloom-new-column {
  padding-left: var(--dataloom-spacing--md);
  width: 50px;
}

/* src/react/loom-app/row-options/styles.css */
.dataloom-row-options {
  height: 100%;
  width: 100%;
}
.dataloom-row-options__container {
  width: 100%;
  height: 100%;
}

/* src/react/loom-app/text-cell/styles.css */
.dataloom-text-cell {
  width: 100%;
  height: 100%;
}
.dataloom-text-cell__container {
  text-align: left;
}
.dataloom-text-cell__container p {
  margin: 0;
}
.dataloom-text-cell__container ul:not(.contains-task-list) {
  padding-left: var(--dataloom-spacing--xl);
  padding-right: 0;
  margin-top: 0;
  margin-bottom: 0;
}

/* src/react/shared/tag/styles.css */
.dataloom-tag {
  display: flex;
  align-items: center;
  border-radius: 8px;
  padding: var(--dataloom-spacing--xs) var(--dataloom-spacing--md);
  width: max-content;
  color: var(--text-normal);
}

/* src/react/loom-app/tag-cell/styles.css */
._tag-cell {
  width: 100%;
}

/* src/react/loom-app/checkbox-cell/styles.css */
.dataloom-checkbox-cell {
  width: 100%;
}
.datlaoom-checkbox-cell input {
  cursor: pointer;
}

/* src/react/loom-app/date-cell/styles.css */
.dataloom-date-cell {
  width: 100%;
  text-align: left;
}

/* src/react/loom-app/number-cell/styles.css */
.dataloom-number-cell {
  width: 100%;
  text-align: right;
}

/* src/react/shared/suggest-list/suggest-item/styles.css */
.dataloom-suggest-it…
decaf-dev commented 6 months ago

@haShinui Should be fixed in 8.15.11

davidszp commented 4 months ago

Freezes are still happening to me in 8.5.11 when I have multiple columns on a folder with about 80 markdown files with frontmatter data. The freezes are erratic, sometimes I can edit 20 cells without a problem and then on the 21st it would freeze. Sometimes I load up the dataloom file, edit the first row and upon exiting the cell it instantly freezes.

Edit: Upon further investigation, I can reliably freeze the table if I edit a cell. Press enter. Then very quickly (within 0.5 seconds) click another cell and attempt to edit it while saving (console: useLockTableScroll cell menu opened. locking table scroll) is ongoing. It appears the crash happens if I edit during the saving process.