Skip to content

Commit

Permalink
allow falsy values in formatting attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
dmonad committed Mar 1, 2024
1 parent 83db6c8 commit 133cfc9
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/types/YText.js
Expand Up @@ -201,7 +201,7 @@ const minimizeAttributeChanges = (currPos, attributes) => {
while (true) {
if (currPos.right === null) {
break
} else if (currPos.right.deleted || (currPos.right.content.constructor === ContentFormat && equalAttrs(attributes[(/** @type {ContentFormat} */ (currPos.right.content)).key] || null, /** @type {ContentFormat} */ (currPos.right.content).value))) {
} else if (currPos.right.deleted || (currPos.right.content.constructor === ContentFormat && equalAttrs(attributes[(/** @type {ContentFormat} */ (currPos.right.content)).key] ?? null, /** @type {ContentFormat} */ (currPos.right.content).value))) {
//
} else {
break
Expand Down Expand Up @@ -389,12 +389,12 @@ const cleanupFormattingGap = (transaction, start, curr, startAttributes, currAtt
switch (content.constructor) {
case ContentFormat: {
const { key, value } = /** @type {ContentFormat} */ (content)
const startAttrValue = startAttributes.get(key) || null
const startAttrValue = startAttributes.get(key) ?? null
if (endFormats.get(key) !== content || startAttrValue === value) {
// Either this format is overwritten or it is not necessary because the attribute already existed.
start.delete(transaction)
cleanups++
if (!reachedCurr && (currAttributes.get(key) || null) === value && startAttrValue !== value) {
if (!reachedCurr && (currAttributes.get(key) ?? null) === value && startAttrValue !== value) {
if (startAttrValue === null) {
currAttributes.delete(key)
} else {
Expand Down Expand Up @@ -769,12 +769,12 @@ export class YTextEvent extends YEvent {
const { key, value } = /** @type {ContentFormat} */ (item.content)
if (this.adds(item)) {
if (!this.deletes(item)) {
const curVal = currentAttributes.get(key) || null
const curVal = currentAttributes.get(key) ?? null
if (!equalAttrs(curVal, value)) {
if (action === 'retain') {
addOp()
}
if (equalAttrs(value, (oldAttributes.get(key) || null))) {
if (equalAttrs(value, (oldAttributes.get(key) ?? null))) {
delete attributes[key]
} else {
attributes[key] = value
Expand All @@ -785,7 +785,7 @@ export class YTextEvent extends YEvent {
}
} else if (this.deletes(item)) {
oldAttributes.set(key, value)
const curVal = currentAttributes.get(key) || null
const curVal = currentAttributes.get(key) ?? null
if (!equalAttrs(curVal, value)) {
if (action === 'retain') {
addOp()
Expand Down

0 comments on commit 133cfc9

Please sign in to comment.