fix #55: try to correct the toot modify algo
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				/ depoly (push) Successful in 1m28s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	/ depoly (push) Successful in 1m28s
				
			This commit is contained in:
		
							parent
							
								
									45c03f9fce
								
							
						
					
					
						commit
						b2db680076
					
				
					 1 changed files with 20 additions and 16 deletions
				
			
		| 
						 | 
				
			
			@ -25,7 +25,6 @@ import TootAuthorGroup from "./toots/TootAuthorGroup.js";
 | 
			
		|||
import "./RegularToot.css";
 | 
			
		||||
import { vibrate } from "~platform/hardware.js";
 | 
			
		||||
import { Transition } from "solid-transition-group";
 | 
			
		||||
import { ANIM_CURVE_SHARP, ANIM_CURVE_STD } from "~material/theme.js";
 | 
			
		||||
 | 
			
		||||
export type TootEnv = {
 | 
			
		||||
  boost: (value: mastodon.v1.Status) => void;
 | 
			
		||||
| 
						 | 
				
			
			@ -97,20 +96,25 @@ export function createDefaultTootEnv(
 | 
			
		|||
      }
 | 
			
		||||
      // modified the original
 | 
			
		||||
 | 
			
		||||
      const result = reblogged
 | 
			
		||||
        ? await c.v1.statuses.$select(status.id).unreblog()
 | 
			
		||||
        : await c.v1.statuses.$select(status.id).reblog();
 | 
			
		||||
      try {
 | 
			
		||||
        const result = reblogged
 | 
			
		||||
          ? await c.v1.statuses.$select(status.id).unreblog()
 | 
			
		||||
          : await c.v1.statuses.$select(status.id).reblog();
 | 
			
		||||
 | 
			
		||||
      if (status.reblog && !reblogged) {
 | 
			
		||||
        // When calling /reblog, the result is the boost object (the actor
 | 
			
		||||
        // is the calling account); for /unreblog, the result is the original
 | 
			
		||||
        // toot. So we only do this trick only on the reblogging.
 | 
			
		||||
        setToot(status.id, {
 | 
			
		||||
          ...status,
 | 
			
		||||
          reblog: result.reblog,
 | 
			
		||||
        });
 | 
			
		||||
      } else {
 | 
			
		||||
        setToot(status.id, result);
 | 
			
		||||
        if (status.reblog && !reblogged) {
 | 
			
		||||
          // When calling /reblog, the result is the boost object (the actor
 | 
			
		||||
          // is the calling account); for /unreblog, the result is the original
 | 
			
		||||
          // toot. So we only do this trick only on the rebloggings.
 | 
			
		||||
          setToot(status.id, {
 | 
			
		||||
            ...status,
 | 
			
		||||
            reblog: result.reblog,
 | 
			
		||||
          });
 | 
			
		||||
        } else {
 | 
			
		||||
          setToot(status.id, reblogged ? result : result.reblog!);
 | 
			
		||||
        }
 | 
			
		||||
      } catch (reason) {
 | 
			
		||||
        setToot(status.id, status);
 | 
			
		||||
        throw reason;
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -310,8 +314,8 @@ const RegularToot: Component<RegularTootProps> = (oprops) => {
 | 
			
		|||
        )}
 | 
			
		||||
        <Transition
 | 
			
		||||
          onExit={(el, done) => {
 | 
			
		||||
            (el as HTMLElement).addEventListener("animationend", done)
 | 
			
		||||
            el.classList.add("Transition-exit")
 | 
			
		||||
            (el as HTMLElement).addEventListener("animationend", done);
 | 
			
		||||
            el.classList.add("Transition-exit");
 | 
			
		||||
          }}
 | 
			
		||||
        >
 | 
			
		||||
          <Show when={props.actionable}>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue