run prettier and fix bug on safari
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Elizabeth Hunt 2024-04-30 09:38:48 -07:00
parent 115ca3bbf2
commit bd9fcb53a5
Signed by: simponic
GPG Key ID: 2909B9A7FF6213EE
12 changed files with 114 additions and 82 deletions

View File

@ -1,7 +1,7 @@
a {
text-decoration: none;
text-decoration: none;
}
.border-darkish {
border-bottom: 1px dashed #666666;
border-bottom: 1px dashed #666666;
}

View File

@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
@ -7,14 +7,26 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Misty Mountains Therapy</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous"
/>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
crossorigin="anonymous"
></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css">
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css"
/>
%svelte.head%
</head>
<body class="d-flex flex-column min-vh-100" style="background-color: #e8e8e8">
%svelte.body%
%svelte.body%
</body>
</html>

View File

@ -9,13 +9,13 @@
<div class="col-md-4 text-center order-sm-1">
<img class="img-fluid rounded shadow" src={imageSpec.image} alt={imageSpec.alt} />
</div>
<div class="col-md-8 border p-2 bg-light rounded shadow order-sm-2">
<div class="col-md-8 border p-4 bg-light rounded shadow order-sm-2">
<slot />
</div>
</div>
{:else}
<div class="row d-flex align-items-center my-2">
<div class="col-md-8 border p-2 bg-light rounded shadow order-md-first order-last">
<div class="col-md-8 border p-4 bg-light rounded shadow order-md-first order-last">
<slot />
</div>
<div class="col-md-4 text-center">

View File

@ -13,15 +13,15 @@
</div>
<div class="d-flex flex-row align-items-center border-darkish p-1">
<i class="bi bi-mailbox"></i>
<a href="mailto:jeffer@mistymountainstherapy.com">
<a href="mailto:contact@mistymountainstherapy.com">
<div class="px-4">
<span>jeffer@mistymountainstherapy.com</span>
<span>contact@mistymountainstherapy.com</span>
</div>
</a>
</div>
<div class="d-flex flex-row align-items-center p-1">
<i class="bi bi-pin-map"></i>
<a href="https://goo.gl/maps/DdkzDQTRHBTtG8ys6">
<a href="https://maps.app.goo.gl/s1AFqfKvUKgXDCrq5">
<div class="px-4">
<span>534 Trejo Street, Suite 200F</span>
<br>
@ -38,7 +38,7 @@
<div class="p-1">
<span class="text-muted">Copyright &copy; 2024 Misty Mountains Therapy</span>
<br>
<span class="text-muted">High quality therapy services for the Rexburg area.</span>
<span class="text-muted">High quality therapy services for the greater Rexburg area.</span>
</div>
</div>
</div>

View File

@ -1,8 +1,8 @@
import { createClient } from '@supabase/supabase-js';
export const supabase = createClient(
import.meta.env.VITE_SUPABASE_URL as string,
import.meta.env.VITE_SUPABASE_ANON_KEY as string,
import.meta.env.VITE_SUPABASE_URL as string,
import.meta.env.VITE_SUPABASE_ANON_KEY as string
);
export default supabase;
export default supabase;

View File

@ -9,37 +9,36 @@ export const RETRY_JITTER_MAX = 3_000;
const waitFor = (ms: number) => new Promise((res) => setTimeout(res, ms));
const exponentialStrategyWithJitter: RetryStrategyF = (retries: number) =>
WAIT_MS * Math.pow(RETRY_EXPONENT, RETRY_EXPONENTIAL_FACTOR * retries) +
RETRY_JITTER_MAX * Math.random();
WAIT_MS * Math.pow(RETRY_EXPONENT, RETRY_EXPONENTIAL_FACTOR * retries) +
RETRY_JITTER_MAX * Math.random();
export const continueRetryUntilValidation = async <T>(
promiseFn: () => Promise<T> | T | Promise<void> | void,
validationFn: (x: T) => Promise<boolean> | boolean = (x: T) =>
Promise.resolve(!!x),
maxRetries = MAX_DEFAULT_RETRY_AMOUNT,
waitTimeStrategy: RetryStrategyF = exponentialStrategyWithJitter,
retries = 0,
lastError: undefined | unknown = undefined
promiseFn: () => Promise<T> | T | Promise<void> | void,
validationFn: (x: T) => Promise<boolean> | boolean = (x: T) => Promise.resolve(!!x),
maxRetries = MAX_DEFAULT_RETRY_AMOUNT,
waitTimeStrategy: RetryStrategyF = exponentialStrategyWithJitter,
retries = 0,
lastError: undefined | unknown = undefined
): Promise<T> => {
if (retries >= maxRetries) {
if (lastError) throw lastError;
throw new Error("Exceeded maximum retry amount");
}
try {
if (retries) await waitFor(waitTimeStrategy(retries));
if (retries >= maxRetries) {
if (lastError) throw lastError;
throw new Error('Exceeded maximum retry amount');
}
try {
if (retries) await waitFor(waitTimeStrategy(retries));
const res = await promiseFn();
if (res && (await validationFn(res))) return res;
const res = await promiseFn();
if (res && (await validationFn(res))) return res;
throw new Error("Validation predicate unsuccessful");
} catch (e: unknown) {
return continueRetryUntilValidation(
promiseFn,
validationFn,
maxRetries,
waitTimeStrategy,
retries + 1,
e
);
}
};
throw new Error('Validation predicate unsuccessful');
} catch (e: unknown) {
return continueRetryUntilValidation(
promiseFn,
validationFn,
maxRetries,
waitTimeStrategy,
retries + 1,
e
);
}
};

View File

@ -1,12 +1,11 @@
import { supabase } from '../supabase';
export const setImageUrl = (imageSpec) => {
const { publicURL, error } = supabase
.storage
.from('mistymountains')
.getPublicUrl(imageSpec.image);
if (!error) {
return { ...imageSpec, image: publicURL };
}
return imageSpec;
}
const { publicURL, error } = supabase.storage
.from('mistymountains')
.getPublicUrl(imageSpec.image);
if (!error) {
return { ...imageSpec, image: publicURL };
}
return imageSpec;
};

View File

@ -1,10 +1,10 @@
<main>
<h1 class="text-center">Our Approach</h1>
<h1 class="text-center">Our Approach.</h1>
<div class="bg-light rounded p-4 shadow">
<div class="row justify-content-center">
<div class="col-sm-10">
<div style="text-align:center">
<img src="https://ztxoywaazhxdeiftmsiy.supabase.co/storage/v1/object/public/mistymountains/boats.jpg" alt="boats in water" style="width:60%">
<img class="shadow" src="https://ztxoywaazhxdeiftmsiy.supabase.co/storage/v1/object/public/mistymountains/boats.jpg" alt="boats in water" style="width:60%;border-radius: 0.25em;">
</div>
<br>
<p>We meet each client where they are at and customize their therapeutic journey to best fit their personality and issues. Some of the approaches we use most are listed below:</p>
@ -38,6 +38,4 @@
<p>We use this method to teach families how to treat and prevent behavioral and emotional problems in children and teens. We use a holistic approach and address concerns in the family, school, and community. We will not tell you how to parent, rather we will give you tools and ideas to manage misbehavior, set rules, encourage behavior you like, and take care of yourself so you can feel good and be confident in your parenting skills.</p>
</div>
</main>

View File

@ -69,9 +69,9 @@
</script>
<main>
<h1 class="text-center">Get in touch</h1>
<h1 class="text-center">Get in touch.</h1>
<div class="d-flex justify-content-center flex-row row">
<div class="border shadow bg-light py-2 col-lg-2 d-flex align-items-center flex-column m-2">
<div class="border shadow bg-light py-2 col-lg-3 d-flex align-items-center flex-column m-2">
<h1><i class="bi bi-map-fill"></i></h1>
<p style="hyphens: auto;">
<a href="https://maps.app.goo.gl/s1AFqfKvUKgXDCrq5">534 Trejo Street
@ -84,25 +84,35 @@
</a>
</p>
</div>
<div class="border shadow bg-light py-2 col-lg-2 d-flex align-items-center flex-column m-2">
<div class="border shadow bg-light py-2 col-lg-3 d-flex align-items-center flex-column m-2">
<div><h1><i class="bi bi-phone-fill"></i></h1></div>
<p style="hyphens: auto;">
For scheduling and other: <a href="tel:12084994517">(208) 499 - 4517</a>
Scheduling and Other
<br>
<a href="tel:12084994517">(208) 499 - 4517</a>
</p>
</div>
<div class="border shadow bg-light py-2 col-lg-2 d-flex align-items-center flex-column m-2">
<div class="border shadow bg-light py-2 col-lg-3 d-flex align-items-center flex-column m-2" style="word-break: break-all;">
<h1><i class="bi bi-envelope-fill"></i></h1>
<p style="hyphens: auto;">
For billing: <a href="mailto:billing@mistymountainstherapy.com">billing@mistymountainstherapy.com</a>
<br>
For other questions: <a href="mailto:jeffer@mistymountainsthreapy.com">jeffer@mistymountainstherapy.com</a>
</p>
<div>
<p style="hyphens: auto;">
Billing
<br>
<a href="mailto:billing@mistymountainstherapy.com">billing@mistymountainstherapy.com</a>
</p>
<p style="hyphens: auto;">
Inqueries
<br>
<a href="mailto:contact@mistymountainsthreapy.com">contact@mistymountainstherapy.com</a>
</p>
<div><em>note: please watch spam for replies</em></div>
</div>
</div>
</div>
<br>
<hr>
<h3>Or send us a message</h3>
<form class="bg-light border shadow p-4" on:submit|preventDefault={handleSubmit}>
<h2>Or send us a message.</h2>
<div class="row mb-2">
<div class="form-group col-md-6">
<label for="email">Email *</label>
@ -130,7 +140,19 @@
/>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
<div class="my-2"><em>note: please watch spam for any replies</em></div>
</form>
<br>
</main>
<div class="bg-light border shadow p-4">
<div class="d-flex justify-content-center">
<div class="col-md-8 mt-2">
<div>
We do not have a crisis line. If you or someone you know is in danger please call 911, visit
your nearest emergency room, call the National Suicide Prevention Lifeline for free crisis
counseling at <a href="tel:18002738255">(800)273-TALK</a> (8255), or text HELLO to 741-741.
</div>
</div>
</div>
</div>
</main>

View File

@ -39,7 +39,7 @@
</Swiper>
</div>
<div class="col-md-5 my-2">
<h2>Helping you conquer Mount Doom</h2>
<h2>Helping you conquer Mount Doom.</h2>
<p><a href="/contact" class="btn btn-success shadow">FREE 15 Minute Consultation</a></p>
</div>
</div>
@ -61,8 +61,8 @@
believe that therapy should be fun, engaging, and most importantly, useful to our clients.
</p>
<p>
We are currently accepting new clients and offer a variety of services to help you live the
life you desire. To find the right fit for you, schedule a <a href="/contact"
We are currently accepting new clients and offer a variety of services to <strong>help you live the
life you desire</strong>. To find the right fit for you, schedule a <a href="/contact"
>free 15-minute consultation</a
>.
</p>

View File

@ -3,28 +3,30 @@
</script>
<main>
<h1 class="text-center">Services</h1>
<h1 class="text-center">Our Services.</h1>
<DirectionCard direction="left" imageSpec={{image: "https://ztxoywaazhxdeiftmsiy.supabase.co/storage/v1/object/public/mistymountains/girl.jpg", alt: "Girl looking at camera"}}>
<h2>Therapy</h2>
<em>We provide personalized, unassuming, and nonjudgemental guidance in the following:</em>
<ul>
<li>Addiction</li>
<li>Adolescents</li>
<li>ADHD</li>
<li>Depression</li>
<li>Anxiety</li>
<li>Autism Spectrum</li>
<li>Couples</li>
<li>Depression</li>
<li>Families</li>
<li>LGBTQ+ Identity</li>
<li>Gender Identity</li>
<li>Couples</li>
<li>Families</li>
<li>Human Sexuality</li>
<li>Individuals</li>
<li>LGBTQ+</li>
<li>Roommates/Friends</li>
<li>Sexuality</li>
<li>And more</li>
<li>Friends / Roomates</li>
<li><em>And more</em></li>
</ul>
</DirectionCard>
<DirectionCard direction="right" imageSpec={{image: "https://ztxoywaazhxdeiftmsiy.supabase.co/storage/v1/object/public/mistymountains/guy.jpg", alt: "Boy smiling to left"}}>
<h2>Screeners</h2>
<em>We perform high quality screening for:</em>
<ul>
<li>ADHD</li>
<li>Anxiety</li>

View File

@ -20,7 +20,7 @@
</script>
<main>
<h1 class="text-center">Our Team</h1>
<h1 class="text-center">Our Team.</h1>
{#if people.length}
{#each people as person, i}
<div class="row border-bottom">