1export default { 2 name: 'BackButton', 3 props: { 4 overrideLinkUrl: { 5 type: String, 6 required: false, 7 }, 8 }, 9 computed: { 10 // Show only when we arrived from another page on this site (same-origin referrer), or when an 11 // explicit override link is set. A direct hit, a new tab, or an external referrer has no 12 // same-origin referrer, so the button stays hidden. (history.length was unreliable here â 13 // redirects and restored sessions inflate it, so it showed even on a clean/direct load.) 14 isVisible() { 15 if (this.overrideLinkUrl) return true; 16 const referrer = document.referrer; 17 if (!referrer) return false; 18 try { 19 return new URL(referrer).origin === window.location.origin; 20 } catch { 21 return false; 22 } 23 }, 24 }, 25 methods: { 26 handleOnClick() { 27 if (this.overrideLinkUrl) { 28 window.location.href = this.overrideLinkUrl; 29 } else if (window.history.length > 1) { 30 window.history.back(); 31 } else if (document.referrer) { 32 window.location.href = document.referrer; 33 } 34 }, 35 }, 36 template: ` 37 <section 38 class="back-button-wrapper" 39 @click="handleOnClick()" 40 v-if="isVisible" 41 > 42 <div class="chevron-wrapper"> 43 <img src="https://saddleback.com/media/cqtb0atb/back-arrow.svg" /> 44 </div> 45 Back 46 </section> 47 `, 48}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.