Merge pull request #12 from itsscb/ft-add-github-action-for-deployment
chore/remove current frontend - will be replaced with angular
2
.gitignore
vendored
@ -2,7 +2,7 @@
|
|||||||
# will have compiled files and executables
|
# will have compiled files and executables
|
||||||
debug/
|
debug/
|
||||||
target/
|
target/
|
||||||
|
.idea/
|
||||||
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
|
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
|
||||||
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
|
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
|
||||||
Cargo.lock
|
Cargo.lock
|
||||||
|
24
flake.nix
@ -11,17 +11,17 @@
|
|||||||
|
|
||||||
# Flake outputs
|
# Flake outputs
|
||||||
outputs = { self, nixpkgs, rust-overlay}:
|
outputs = { self, nixpkgs, rust-overlay}:
|
||||||
let
|
#let
|
||||||
# Overlays enable you to customize the Nixpkgs attribute set
|
# Overlays enable you to customize the Nixpkgs attribute set
|
||||||
overlays = [
|
#overlays = [
|
||||||
# Makes a `rust-bin` attribute available in Nixpkgs
|
# Makes a `rust-bin` attribute available in Nixpkgs
|
||||||
(import rust-overlay)
|
#(import rust-overlay)
|
||||||
# Provides a `rustToolchain` attribute for Nixpkgs that we can use to
|
# Provides a `rustToolchain` attribute for Nixpkgs that we can use to
|
||||||
# create a Rust environment
|
# create a Rust environment
|
||||||
(self: super: {
|
#(self: super: {
|
||||||
rustToolchain = super.rust-bin.stable.latest.default;
|
#rustToolchain = super.rust-bin.stable.latest.default;
|
||||||
})
|
#})
|
||||||
];
|
# ];
|
||||||
|
|
||||||
# Systems supported
|
# Systems supported
|
||||||
allSystems = [
|
allSystems = [
|
||||||
@ -55,11 +55,11 @@
|
|||||||
packages = (with pkgs; [
|
packages = (with pkgs; [
|
||||||
# The package provided by our custom overlay. Includes cargo, Clippy, cargo-fmt,
|
# The package provided by our custom overlay. Includes cargo, Clippy, cargo-fmt,
|
||||||
# rustdoc, rustfmt, and other tools.
|
# rustdoc, rustfmt, and other tools.
|
||||||
rust-analyzer
|
# rust-analyzer
|
||||||
clippy
|
# clippy
|
||||||
trunk
|
# trunk
|
||||||
tailwindcss
|
# tailwindcss
|
||||||
rustToolchain
|
# rustToolchain
|
||||||
]) ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ libiconv ]);
|
]) ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ libiconv ]);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "digitaler-frieden-frontend"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2021"
|
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
web-sys = {version="0.3.69", features = ["HtmlInputElement"]}
|
|
||||||
yew = { version = "0.21.0", features = ["csr"] }
|
|
||||||
yew-router = { version = "0.18.0"}
|
|
||||||
gloo-console = "0.3.0"
|
|
||||||
yewdux = "0.10.0"
|
|
||||||
serde = "1.0.198"
|
|
||||||
serde_json = "1.0.116"
|
|
||||||
regex = "1.10.4"
|
|
@ -1,7 +0,0 @@
|
|||||||
[[hooks]]
|
|
||||||
stage = "build"
|
|
||||||
command = "tailwindcss"
|
|
||||||
command_arguments = ["-i","input.css","-o","public/styles.css"]
|
|
||||||
|
|
||||||
[serve]
|
|
||||||
address = "0.0.0.0"
|
|
Before Width: | Height: | Size: 1.1 MiB |
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
|
|
Before Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 290 KiB |
Before Width: | Height: | Size: 332 KiB |
Before Width: | Height: | Size: 182 KiB |
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg style="enable-background:new 0 0 3000 2000" version="1.1" viewBox="0 0 3e3 2e3" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<style type="text/css">.st0{fill:#FFFFFF;}</style>
|
|
||||||
<path class="st0" d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z" style="fill:#fff">
|
|
||||||
<title>logo</title>
|
|
||||||
</path>
|
|
||||||
<path class="st0" d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z" style="fill:#fff"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 6.9 KiB |
@ -1,107 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
version="1.1"
|
|
||||||
id="Layer_1"
|
|
||||||
x="0px"
|
|
||||||
y="0px"
|
|
||||||
viewBox="0 0 3072000 2048000"
|
|
||||||
xml:space="preserve"
|
|
||||||
sodipodi:docname="vector-SVG.svg"
|
|
||||||
width="3072000"
|
|
||||||
height="2048000"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
|
||||||
id="defs20" /><sodipodi:namedview
|
|
||||||
id="namedview20"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#000000"
|
|
||||||
borderopacity="0.25"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:deskcolor="#d1d1d1" /> <style
|
|
||||||
type="text/css"
|
|
||||||
id="style1"> .st0{fill:#FFFFFF;} </style> <rect
|
|
||||||
x="-2963012"
|
|
||||||
y="-975512"
|
|
||||||
width="1024"
|
|
||||||
height="1024"
|
|
||||||
id="rect1"
|
|
||||||
style="stroke-width:0.418046" /> <g
|
|
||||||
id="g20"
|
|
||||||
transform="translate(-2964000.1,-975619.87)"> <g
|
|
||||||
id="g19"
|
|
||||||
transform="matrix(0.57036525,0,0,0.57036525,644.47575,266.3177)"
|
|
||||||
inkscape:export-filename="icon.png"
|
|
||||||
inkscape:export-xdpi="32.768002"
|
|
||||||
inkscape:export-ydpi="32.768002"> <g
|
|
||||||
id="g4"> <g
|
|
||||||
id="g1"> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 1643.8,246.59 -62.38,104.92 57.67,47.96 46.96,-78.8 h 471.2 l 44.11,-74.08 z"
|
|
||||||
id="path1" /> </g> <g
|
|
||||||
id="g3"> <g
|
|
||||||
id="g2"> <polygon
|
|
||||||
class="st0"
|
|
||||||
points="1507.63,473.84 1323.2,320.82 929.22,320.82 1212,795.3 1168.89,867.68 798.75,246.59 1350.04,246.59 1604.26,457.85 1568.29,518.38 2039.49,518.38 1995.24,592.61 1524.04,592.61 1285.51,993.15 1199.15,993.15 1507.91,474.13 "
|
|
||||||
id="polygon1" /> </g> </g> </g> <g
|
|
||||||
id="g18"
|
|
||||||
style="display:none"> <g
|
|
||||||
id="g17"> <g
|
|
||||||
id="g16"> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 462.6,1250.09 h -89.07 v 220.83 h 89.07 c 72.8,0 126.61,-42.97 126.61,-110.63 0,-67.38 -53.81,-110.2 -126.61,-110.2 z m 0,196.13 h -60.38 v -171.58 h 60.38 c 58.81,0 97.07,34.12 97.07,85.65 0,51.82 -38.26,85.93 -97.07,85.93 z"
|
|
||||||
id="path4" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 701.13,1250.09 v 220.83 h 28.55 v -220.83 z"
|
|
||||||
id="path5" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="M 1092.68,1354.01 H 967.63 v 23.84 l 94.64,0.43 c -2.28,10.56 -6,20.13 -11.13,29.26 -3,5.57 -7.28,10.56 -11.7,15.27 l -0.57,0.57 c -15.27,14.85 -36.54,24.55 -62.24,26.55 -3,0.43 -6.28,0.43 -9.56,0.43 h -3.71 c -35.83,-1.14 -64.38,-16.99 -79.65,-42.25 h -0.43 c -7.85,-13.56 -12.56,-29.55 -12.56,-47.82 0,-52.82 39.54,-89.64 96.35,-89.64 37.83,0 68.38,15.99 84.08,42.82 l 32.12,-0.43 c -18.56,-41.11 -62.09,-67.09 -116.19,-67.09 -72.37,0 -125.9,46.96 -125.9,114.34 0,66.8 51.82,113.63 122.91,114.62 h 9.56 c 3.71,-0.28 7.71,-0.71 11.42,-0.71 l 6.28,-1 c 11.85,-2 23.55,-5.28 33.55,-9.56 13.27,-5.71 25.12,-13.28 34.83,-22.55 0.29,-0.43 0.71,-0.71 0.71,-1.14 4.85,-4.71 9.56,-9.85 13.27,-15.56 l 0.86,-1 c 11.42,-16.56 17.7,-36.11 18.7,-58.1 -0.02,-6.57 -0.45,-8.57 -0.59,-11.28 z"
|
|
||||||
id="path6" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 1201.16,1250.09 v 220.83 h 28.41 v -220.83 z"
|
|
||||||
id="path7" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 1329.49,1250.09 v 24.27 h 83.65 v 196.56 h 28.55 v -196.56 h 84.08 v -24.27 z"
|
|
||||||
id="path8" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 1704.2,1250.09 h -32.97 l -101.21,220.83 h 31.83 l 25.98,-55.53 h 120.76 l 25.27,55.53 h 31.55 z m -65.09,141.46 48.82,-112.91 49.82,112.91 z"
|
|
||||||
id="path9" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 1934.3,1446.65 v -196.56 h -28.41 v 220.83 h 158.31 v -24.27 z"
|
|
||||||
id="path10" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 2193.24,1446.65 v -75.37 H 2313 v -23.98 h -119.76 v -72.94 h 139.18 v -24.27 h -167.73 v 220.83 h 170.72 v -24.27 z"
|
|
||||||
id="path11" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 2547.39,1368.28 h 3 c 45.82,0 73.8,-25.27 73.8,-59.52 0,-34.4 -27.98,-58.38 -73.8,-58.38 h -108.63 v 220.83 h 28.26 l 0.29,-102.92 h 44.11 l 75.51,102.63 h 36.54 z m -77.08,-24.69 v -69.23 h 80.08 c 28.55,0 44.11,12.42 44.11,34.12 0,21.27 -15.56,35.12 -44.11,35.12 h -80.08 z"
|
|
||||||
id="path12" /> <g
|
|
||||||
id="g15"> <polygon
|
|
||||||
class="st0"
|
|
||||||
points="911.43,1635.82 911.43,1622.14 817.17,1622.14 817.17,1753.32 831.98,1753.32 831.98,1696.16 903.01,1696.16 903.01,1682.67 831.98,1682.67 831.98,1635.82 "
|
|
||||||
id="polygon12" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 1097.67,1699.74 c 20.56,-3.85 35.54,-16.56 35.54,-38.4 0,-23.7 -18.7,-39.11 -47.39,-39.11 h -56.39 v 131.18 h 14.7 v -50.96 h 37.54 l 37.97,50.96 h 18.27 z m -53.53,-10.71 v -53.24 h 40.54 c 21.13,0 33.55,9.85 33.55,25.98 0,17.13 -14.13,27.26 -33.69,27.26 z"
|
|
||||||
id="path13" /> <rect
|
|
||||||
x="1257.67"
|
|
||||||
y="1622.14"
|
|
||||||
class="st0"
|
|
||||||
width="14.81"
|
|
||||||
height="131.17999"
|
|
||||||
id="rect13" /> <polygon
|
|
||||||
class="st0"
|
|
||||||
points="1402.93,1622.14 1402.93,1753.32 1498.7,1753.32 1498.7,1739.83 1417.74,1739.83 1417.74,1693.91 1489.32,1693.91 1489.32,1680.42 1417.74,1680.42 1417.74,1635.63 1497.76,1635.63 1497.76,1622.14 "
|
|
||||||
id="polygon13" /> <path
|
|
||||||
class="st0"
|
|
||||||
d="m 1663.8,1622.23 h -45.54 v 131.18 h 45.54 c 41.11,0 69.66,-28.83 69.66,-65.81 0,-37.11 -28.55,-65.37 -69.66,-65.37 z m 0,117.33 h -30.83 v -103.78 h 30.83 c 33.12,0 54.24,22.98 54.24,52.1 0,29.27 -21.12,51.68 -54.24,51.68 z"
|
|
||||||
id="path14" /> <polygon
|
|
||||||
class="st0"
|
|
||||||
points="1856.72,1622.14 1856.72,1753.32 1952.47,1753.32 1952.47,1739.83 1871.52,1739.83 1871.52,1693.91 1943.11,1693.91 1943.11,1680.42 1871.52,1680.42 1871.52,1635.63 1951.54,1635.63 1951.54,1622.14 "
|
|
||||||
id="polygon14" /> <polygon
|
|
||||||
class="st0"
|
|
||||||
points="2171.22,1753.32 2183.04,1753.32 2183.04,1622.14 2168.59,1622.14 2168.59,1727.27 2085.95,1622.14 2072.09,1622.14 2072.09,1753.32 2086.52,1753.32 2086.52,1645.76 "
|
|
||||||
id="polygon15" /> </g> </g> </g> </g> </g> </g> </svg>
|
|
Before Width: | Height: | Size: 5.9 KiB |
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"/></svg>
|
|
Before Width: | Height: | Size: 348 B |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 64 KiB |
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z"/></svg>
|
|
Before Width: | Height: | Size: 279 B |
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"/></svg>
|
|
Before Width: | Height: | Size: 194 B |
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#FFFFFF"><path d="M0 0h24v24H0z" fill="none"/><path d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>
|
|
Before Width: | Height: | Size: 296 B |
@ -1,69 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
||||||
viewBox="0 0 3000 2000" style="enable-background:new 0 0 3000 2000;" xml:space="preserve">
|
|
||||||
<style type="text/css">
|
|
||||||
.st0{fill:#FFFFFF;}
|
|
||||||
</style>
|
|
||||||
<rect x="0" y="0" width="3000" height="2000"/>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<path class="st0" d="M1643.8,246.59l-62.38,104.92l57.67,47.96l46.96-78.8h471.2l44.11-74.08H1643.8z"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<polygon class="st0" points="2039.49,518.38 1995.24,592.61 1524.04,592.61 1285.51,993.15 1199.15,993.15 1507.91,474.13
|
|
||||||
1507.63,473.84 1323.2,320.82 929.22,320.82 1212,795.3 1168.89,867.68 798.75,246.59 1350.04,246.59 1604.26,457.85
|
|
||||||
1568.29,518.38 "/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<path class="st0" d="M462.6,1250.09h-89.07v220.83h89.07c72.8,0,126.61-42.97,126.61-110.63
|
|
||||||
C589.21,1292.91,535.4,1250.09,462.6,1250.09z M462.6,1446.22h-60.38v-171.58h60.38c58.81,0,97.07,34.12,97.07,85.65
|
|
||||||
C559.67,1412.11,521.41,1446.22,462.6,1446.22z"/>
|
|
||||||
<path class="st0" d="M701.13,1250.09v220.83h28.55v-220.83H701.13z"/>
|
|
||||||
<path class="st0" d="M1092.68,1354.01H967.63v23.84l94.64,0.43c-2.28,10.56-6,20.13-11.13,29.26c-3,5.57-7.28,10.56-11.7,15.27
|
|
||||||
l-0.57,0.57c-15.27,14.85-36.54,24.55-62.24,26.55c-3,0.43-6.28,0.43-9.56,0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25
|
|
||||||
h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82c0-52.82,39.54-89.64,96.35-89.64c37.83,0,68.38,15.99,84.08,42.82l32.12-0.43
|
|
||||||
c-18.56-41.11-62.09-67.09-116.19-67.09c-72.37,0-125.9,46.96-125.9,114.34c0,66.8,51.82,113.63,122.91,114.62h9.56
|
|
||||||
c3.71-0.28,7.71-0.71,11.42-0.71l6.28-1c11.85-2,23.55-5.28,33.55-9.56c13.27-5.71,25.12-13.28,34.83-22.55
|
|
||||||
c0.29-0.43,0.71-0.71,0.71-1.14c4.85-4.71,9.56-9.85,13.27-15.56l0.86-1c11.42-16.56,17.7-36.11,18.7-58.1
|
|
||||||
C1093.25,1358.72,1092.82,1356.72,1092.68,1354.01z"/>
|
|
||||||
<path class="st0" d="M1201.16,1250.09v220.83h28.41v-220.83H1201.16z"/>
|
|
||||||
<path class="st0" d="M1329.49,1250.09v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27H1329.49z"/>
|
|
||||||
<path class="st0" d="M1704.2,1250.09h-32.97l-101.21,220.83h31.83l25.98-55.53h120.76l25.27,55.53h31.55L1704.2,1250.09z
|
|
||||||
M1639.11,1391.55l48.82-112.91l49.82,112.91H1639.11z"/>
|
|
||||||
<path class="st0" d="M1934.3,1446.65v-196.56h-28.41v220.83h158.31v-24.27H1934.3z"/>
|
|
||||||
<path class="st0" d="M2193.24,1446.65v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27
|
|
||||||
H2193.24z"/>
|
|
||||||
<path class="st0" d="M2547.39,1368.28h3c45.82,0,73.8-25.27,73.8-59.52c0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26
|
|
||||||
l0.29-102.92h44.11l75.51,102.63h36.54L2547.39,1368.28z M2470.31,1343.59v-69.23h80.08c28.55,0,44.11,12.42,44.11,34.12
|
|
||||||
c0,21.27-15.56,35.12-44.11,35.12H2470.31z"/>
|
|
||||||
<g>
|
|
||||||
<polygon class="st0" points="817.17,1753.32 831.98,1753.32 831.98,1696.16 903.01,1696.16 903.01,1682.67 831.98,1682.67
|
|
||||||
831.98,1635.82 911.43,1635.82 911.43,1622.14 817.17,1622.14 "/>
|
|
||||||
<path class="st0" d="M1097.67,1699.74c20.56-3.85,35.54-16.56,35.54-38.4c0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7
|
|
||||||
v-50.96h37.54l37.97,50.96h18.27L1097.67,1699.74z M1044.14,1689.03v-53.24h40.54c21.13,0,33.55,9.85,33.55,25.98
|
|
||||||
c0,17.13-14.13,27.26-33.69,27.26H1044.14z"/>
|
|
||||||
<rect x="1257.67" y="1622.14" class="st0" width="14.81" height="131.18"/>
|
|
||||||
<polygon class="st0" points="1417.74,1693.91 1489.32,1693.91 1489.32,1680.42 1417.74,1680.42 1417.74,1635.63
|
|
||||||
1497.76,1635.63 1497.76,1622.14 1402.93,1622.14 1402.93,1753.32 1498.7,1753.32 1498.7,1739.83 1417.74,1739.83 "/>
|
|
||||||
<path class="st0" d="M1663.8,1622.23h-45.54v131.18h45.54c41.11,0,69.66-28.83,69.66-65.81
|
|
||||||
C1733.46,1650.49,1704.91,1622.23,1663.8,1622.23z M1663.8,1739.56h-30.83v-103.78h30.83c33.12,0,54.24,22.98,54.24,52.1
|
|
||||||
C1718.04,1717.15,1696.92,1739.56,1663.8,1739.56z"/>
|
|
||||||
<polygon class="st0" points="1871.52,1693.91 1943.11,1693.91 1943.11,1680.42 1871.52,1680.42 1871.52,1635.63
|
|
||||||
1951.54,1635.63 1951.54,1622.14 1856.72,1622.14 1856.72,1753.32 1952.47,1753.32 1952.47,1739.83 1871.52,1739.83 "/>
|
|
||||||
<polygon class="st0" points="2168.59,1622.14 2168.59,1727.27 2085.95,1622.14 2072.09,1622.14 2072.09,1753.32
|
|
||||||
2086.52,1753.32 2086.52,1645.76 2171.22,1753.32 2183.04,1753.32 2183.04,1622.14 "/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.4 KiB |
BIN
frontend/dist/favicon-928ba63f33046eed.ico
vendored
Before Width: | Height: | Size: 12 KiB |
149
frontend/dist/index.html
vendored
@ -1,149 +0,0 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Digitaler Frieden</title>
|
|
||||||
<link rel="stylesheet" href="/styles-2f497d8ef19829ea.css" integrity="sha384-xjbFA5YII5ii4ycMp1VG9QYAac57eQoe_5ODSF-7wl5-9HE4Y1gF6bNlX9x-yPi6">
|
|
||||||
<link rel="icon" href="/favicon-928ba63f33046eed.ico" integrity="sha384-Neq57jnFrTfqAN1JvKAVVVcH1EW3__cZHmK2NRXRlNrxAZR6ErTvXzbOLSyHzkA4">
|
|
||||||
|
|
||||||
<link rel="manifest" href="public/manifest.json">
|
|
||||||
|
|
||||||
<link rel="preload" href="/digitaler-frieden-frontend-966184f58f0dec130de874bf4a4e9dbea4d2e01aeb5d4c580e786766d8bf5d5d1405401be9a2426f131ac8176ef49da1_bg.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" integrity="sha384-lmGE9Y8N7BMN6HS_Sk6dvqTS4BrrXUxYDnhnZti_XV0UBUAb6aJCbxMayBdu9J2h">
|
|
||||||
<link rel="modulepreload" href="/digitaler-frieden-frontend-966184f58f0dec130de874bf4a4e9dbea4d2e01aeb5d4c580e786766d8bf5d5d1405401be9a2426f131ac8176ef49da1.js" crossorigin="anonymous" integrity="sha384-mgpWzZIPoUI4-EYN3fy8ZWDj99XZaUu9aa_xTYGF5civVs-o7hT-Bae1y3GLtLeS"></head>
|
|
||||||
<body class="bg-black text-white">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="module">
|
|
||||||
import init, * as bindings from '/digitaler-frieden-frontend-966184f58f0dec130de874bf4a4e9dbea4d2e01aeb5d4c580e786766d8bf5d5d1405401be9a2426f131ac8176ef49da1.js';
|
|
||||||
init('/digitaler-frieden-frontend-966184f58f0dec130de874bf4a4e9dbea4d2e01aeb5d4c580e786766d8bf5d5d1405401be9a2426f131ac8176ef49da1_bg.wasm');
|
|
||||||
window.wasmBindings = bindings;
|
|
||||||
|
|
||||||
</script><script>"use strict";
|
|
||||||
|
|
||||||
(function () {
|
|
||||||
|
|
||||||
const address = '{{__TRUNK_ADDRESS__}}';
|
|
||||||
let protocol = '';
|
|
||||||
protocol =
|
|
||||||
protocol
|
|
||||||
? protocol
|
|
||||||
: window.location.protocol === 'https:'
|
|
||||||
? 'wss'
|
|
||||||
: 'ws';
|
|
||||||
const url = protocol + '://' + address + '/_trunk/ws';
|
|
||||||
|
|
||||||
class Overlay {
|
|
||||||
constructor() {
|
|
||||||
// create an overlay
|
|
||||||
this._overlay = document.createElement("div");
|
|
||||||
const style = this._overlay.style;
|
|
||||||
style.height = "100vh";
|
|
||||||
style.width = "100vw";
|
|
||||||
style.position = "fixed";
|
|
||||||
style.top = "0";
|
|
||||||
style.left = "0";
|
|
||||||
style.backgroundColor = "rgba(222, 222, 222, 0.5)";
|
|
||||||
style.fontFamily = "sans-serif";
|
|
||||||
// not sure that's the right approach
|
|
||||||
style.zIndex = "1000000";
|
|
||||||
style.backdropFilter = "blur(1rem)";
|
|
||||||
|
|
||||||
const container = document.createElement("div");
|
|
||||||
// center it
|
|
||||||
container.style.position = "absolute";
|
|
||||||
container.style.top = "30%";
|
|
||||||
container.style.left = "15%";
|
|
||||||
container.style.maxWidth = "85%";
|
|
||||||
|
|
||||||
this._title = document.createElement("div");
|
|
||||||
this._title.innerText = "Build failure";
|
|
||||||
this._title.style.paddingBottom = "2rem";
|
|
||||||
this._title.style.fontSize = "2.5rem";
|
|
||||||
|
|
||||||
this._message = document.createElement("div");
|
|
||||||
this._message.style.whiteSpace = "pre-wrap";
|
|
||||||
|
|
||||||
const icon= document.createElement("div");
|
|
||||||
icon.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" fill="#dc3545" viewBox="0 0 16 16"><path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z"/></svg>';
|
|
||||||
this._title.prepend(icon);
|
|
||||||
|
|
||||||
container.append(this._title, this._message);
|
|
||||||
this._overlay.append(container);
|
|
||||||
|
|
||||||
this._inject();
|
|
||||||
window.setInterval(() => {
|
|
||||||
this._inject();
|
|
||||||
}, 250);
|
|
||||||
}
|
|
||||||
|
|
||||||
set reason(reason) {
|
|
||||||
this._message.textContent = reason;
|
|
||||||
}
|
|
||||||
|
|
||||||
_inject() {
|
|
||||||
if (!this._overlay.isConnected) {
|
|
||||||
// prepend it
|
|
||||||
document.body?.prepend(this._overlay);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
class Client {
|
|
||||||
constructor(url) {
|
|
||||||
this.url = url;
|
|
||||||
this.poll_interval = 5000;
|
|
||||||
this._overlay = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
start() {
|
|
||||||
const ws = new WebSocket(this.url);
|
|
||||||
ws.onmessage = (ev) => {
|
|
||||||
const msg = JSON.parse(ev.data);
|
|
||||||
switch (msg.type) {
|
|
||||||
case "reload":
|
|
||||||
this.reload();
|
|
||||||
break;
|
|
||||||
case "buildFailure":
|
|
||||||
this.buildFailure(msg.data)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
ws.onclose = this.onclose;
|
|
||||||
}
|
|
||||||
|
|
||||||
onclose() {
|
|
||||||
window.setTimeout(
|
|
||||||
() => {
|
|
||||||
// when we successfully reconnect, we'll force a
|
|
||||||
// reload (since we presumably lost connection to
|
|
||||||
// trunk due to it being killed, so it will have
|
|
||||||
// rebuilt on restart)
|
|
||||||
const ws = new WebSocket(this.url);
|
|
||||||
ws.onopen = () => window.location.reload();
|
|
||||||
ws.onclose = this.onclose;
|
|
||||||
},
|
|
||||||
this.poll_interval);
|
|
||||||
}
|
|
||||||
|
|
||||||
reload() {
|
|
||||||
window.location.reload();
|
|
||||||
}
|
|
||||||
|
|
||||||
buildFailure({reason}) {
|
|
||||||
// also log the console
|
|
||||||
console.error("Build failed:", reason);
|
|
||||||
|
|
||||||
console.debug("Overlay", this._overlay);
|
|
||||||
|
|
||||||
if (!this._overlay) {
|
|
||||||
this._overlay = new Overlay();
|
|
||||||
}
|
|
||||||
this._overlay.reason = reason;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
new Client(url).start();
|
|
||||||
|
|
||||||
})()
|
|
||||||
</script></body></html>
|
|
15
frontend/dist/public/manifest.json
vendored
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Digitaler Frieden",
|
|
||||||
"short_name": "Digitaler Frieden",
|
|
||||||
"start_url": ".",
|
|
||||||
"display": "standalone",
|
|
||||||
"background_color": "#000",
|
|
||||||
"description": "Digitale Spuren entfernen per Knopfdruck",
|
|
||||||
"categories": [
|
|
||||||
"utilities"
|
|
||||||
],
|
|
||||||
"icons": [
|
|
||||||
"public/favicon.ico"
|
|
||||||
],
|
|
||||||
"orientation": "portrait-primary"
|
|
||||||
}
|
|
1190
frontend/dist/public/styles.css
vendored
1190
frontend/dist/styles-2f497d8ef19829ea.css
vendored
83
frontend/flake.lock
generated
@ -1,83 +0,0 @@
|
|||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1705309234,
|
|
||||||
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1706487304,
|
|
||||||
"narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "90f456026d284c22b3e3497be980b2e47d0b28ac",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"rust-overlay",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"rust-overlay": "rust-overlay"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1716517042,
|
|
||||||
"narHash": "sha256-PDPMpBVv+6XdV4FvBWk002IBGofDIWCpo9ewks0kStM=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "66a43411079d0d1b1b776c0a6ced20a5df896edb",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
{
|
|
||||||
description = "Example Rust development environment for Zero to Nix";
|
|
||||||
|
|
||||||
# Flake inputs
|
|
||||||
inputs = {
|
|
||||||
# nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/*.tar.gz";
|
|
||||||
rust-overlay.url = "github:oxalica/rust-overlay"; # A helper for Rust + Nix
|
|
||||||
# cargo2nix.url = "github:cargo2nix/cargo2nix/";
|
|
||||||
nixpkgs.follows = "rust-overlay/nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Flake outputs
|
|
||||||
outputs = { self, nixpkgs, rust-overlay}:
|
|
||||||
let
|
|
||||||
# Overlays enable you to customize the Nixpkgs attribute set
|
|
||||||
overlays = [
|
|
||||||
# Makes a `rust-bin` attribute available in Nixpkgs
|
|
||||||
(import rust-overlay)
|
|
||||||
# Provides a `rustToolchain` attribute for Nixpkgs that we can use to
|
|
||||||
# create a Rust environment
|
|
||||||
(self: super: {
|
|
||||||
rustToolchain = super.rust-bin.stable.latest.default;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
# Systems supported
|
|
||||||
allSystems = [
|
|
||||||
"x86_64-linux" # 64-bit Intel/AMD Linux
|
|
||||||
"aarch64-linux" # 64-bit ARM Linux
|
|
||||||
"x86_64-darwin" # 64-bit Intel macOS
|
|
||||||
"aarch64-darwin" # 64-bit ARM macOS
|
|
||||||
];
|
|
||||||
|
|
||||||
# rustTarget = nixpkgs.pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.default.override {
|
|
||||||
# extensions = [ "rust-src" "rustup" "rust-analyzer" "rust-std" ];
|
|
||||||
# targets = [ "x86_64-unknown-linux-gnu" "wasm32-unknown-unknown" ];
|
|
||||||
# });
|
|
||||||
|
|
||||||
# Helper to provide system-specific attributes
|
|
||||||
forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
|
|
||||||
pkgs = import nixpkgs { inherit overlays system; };
|
|
||||||
});
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# Development environment output
|
|
||||||
devShells = forAllSystems ({ pkgs }: {
|
|
||||||
default = pkgs.mkShell {
|
|
||||||
# buildInputs = [
|
|
||||||
# rustup
|
|
||||||
# ];
|
|
||||||
# shellHook = ''
|
|
||||||
# rustup target add wasm32-unknown-unknown
|
|
||||||
# '';
|
|
||||||
# The Nix packages provided in the environment
|
|
||||||
packages = (with pkgs; [
|
|
||||||
# The package provided by our custom overlay. Includes cargo, Clippy, cargo-fmt,
|
|
||||||
# rustdoc, rustfmt, and other tools.
|
|
||||||
rust-analyzer
|
|
||||||
clippy
|
|
||||||
trunk
|
|
||||||
tailwindcss
|
|
||||||
rustToolchain
|
|
||||||
]) ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs; [ libiconv ]);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Digitaler Frieden</title>
|
|
||||||
<link data-trunk href="./public/styles.css" rel="css">
|
|
||||||
<link data-trunk href="./assets/favicon.ico" rel="icon" type="image/x-icon">
|
|
||||||
<link data-trunk rel="copy-dir" href="public" >
|
|
||||||
<link rel="manifest" href="public/manifest.json" />
|
|
||||||
</head>
|
|
||||||
<body class="bg-black text-white">
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,202 +0,0 @@
|
|||||||
@tailwind base;
|
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
|
|
||||||
.logo {
|
|
||||||
@apply absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo-fadein-right {
|
|
||||||
position:relative;
|
|
||||||
animation: logo-fadein-right 1s ;
|
|
||||||
}
|
|
||||||
|
|
||||||
.validation-error {
|
|
||||||
@apply border-solid border-error;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes logo-fadein-right {
|
|
||||||
0% {
|
|
||||||
transform: translateX(-200%);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
70%{
|
|
||||||
transform: translateX(0);
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
80%{
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
90%{
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
100%{
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.logo-fadein-left {
|
|
||||||
position: relative;
|
|
||||||
animation: logo-fadein-left 1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes logo-fadein-left {
|
|
||||||
0% {
|
|
||||||
transform: translateX(500%);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
70%{
|
|
||||||
opacity: 0.7;
|
|
||||||
}
|
|
||||||
80%{
|
|
||||||
transform: translateX(0);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
90%{
|
|
||||||
opacity: 0.8;
|
|
||||||
}
|
|
||||||
100%{
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@keyframes logo-fadein-left {
|
|
||||||
from{
|
|
||||||
left: -200%;
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
to{
|
|
||||||
left: 0;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.fade-in{
|
|
||||||
position:relative;
|
|
||||||
animation:fadein 0.4s}
|
|
||||||
@keyframes fadein{
|
|
||||||
from{
|
|
||||||
left:200%;
|
|
||||||
opacity:0;
|
|
||||||
} to{
|
|
||||||
left:0;
|
|
||||||
opacity:1}
|
|
||||||
}
|
|
||||||
|
|
||||||
.fade-out{
|
|
||||||
position:relative;
|
|
||||||
animation:fadeout 0.4s}
|
|
||||||
@keyframes fadeout{
|
|
||||||
from{
|
|
||||||
left:0;
|
|
||||||
opacity:0
|
|
||||||
} to{
|
|
||||||
left:-200%;
|
|
||||||
opacity:1}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mail-animation {
|
|
||||||
position:relative;
|
|
||||||
animation:mail-animation 2s infinite;
|
|
||||||
}
|
|
||||||
@keyframes mail-animation {
|
|
||||||
0% {
|
|
||||||
left: -20%;
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
20% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
70%{
|
|
||||||
left: 20%;
|
|
||||||
}
|
|
||||||
80%{
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
100%{
|
|
||||||
left: 100%;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.cx-date-picker {
|
|
||||||
@apply inline-block relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cx-date-picker[type="date"]::-webkit-calendar-picker-indicator {
|
|
||||||
background: transparent;
|
|
||||||
bottom: 0;
|
|
||||||
color: transparent;
|
|
||||||
cursor: pointer;
|
|
||||||
height: auto;
|
|
||||||
left: 0;
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-danger {
|
|
||||||
color: rgba(255, 82, 82,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-danger {
|
|
||||||
background-color: rgba(255, 82, 82,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.min-height {
|
|
||||||
min-height: 500px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-tertiary {
|
|
||||||
color: rgba(132, 129, 122,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-tertriary {
|
|
||||||
background-color: rgba(132, 129, 122,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-primary {
|
|
||||||
border-color: rgba(51,217,178,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-error {
|
|
||||||
border-color: rgba(255, 82, 82,1.0) !important;
|
|
||||||
}
|
|
||||||
.accent-primary {
|
|
||||||
accent-color: rgba(51, 217, 178,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-primary {
|
|
||||||
color: rgba(51, 217, 178,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-primary-dark {
|
|
||||||
color: rgba(33, 140, 116,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-primary-dark {
|
|
||||||
background-color: rgba(33, 140, 116,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-primary {
|
|
||||||
background-color: rgba(51, 217, 178,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-secondary {
|
|
||||||
color: rgba(52, 172, 224,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-secondary-dark {
|
|
||||||
color: rgba(34, 112, 147,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-secondary-dark {
|
|
||||||
background-color: rgba(34, 112, 147,1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-secondary {
|
|
||||||
background-color: rgba(52, 172, 224,1.0);
|
|
||||||
}
|
|
||||||
|
|
1379
frontend/package-lock.json
generated
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"devDependencies": {
|
|
||||||
"tailwindcss": "^3.4.3"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "Digitaler Frieden",
|
|
||||||
"short_name": "Digitaler Frieden",
|
|
||||||
"start_url": ".",
|
|
||||||
"display": "standalone",
|
|
||||||
"background_color": "#000",
|
|
||||||
"description": "Digitale Spuren entfernen per Knopfdruck",
|
|
||||||
"categories": [
|
|
||||||
"utilities"
|
|
||||||
],
|
|
||||||
"icons": [
|
|
||||||
"public/favicon.ico"
|
|
||||||
],
|
|
||||||
"orientation": "portrait-primary"
|
|
||||||
}
|
|
@ -1,4 +0,0 @@
|
|||||||
pub mod pages;
|
|
||||||
pub mod router;
|
|
||||||
pub mod storage;
|
|
||||||
mod validation;
|
|
@ -1,5 +0,0 @@
|
|||||||
use digitaler_frieden_frontend::router::Main;
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
yew::Renderer::<Main>::new().render();
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
mod signup;
|
|
||||||
pub use signup::SignUp;
|
|
||||||
|
|
||||||
mod verify;
|
|
||||||
pub use verify::Verify;
|
|
||||||
|
|
||||||
mod deceased;
|
|
||||||
pub use deceased::Deceased;
|
|
||||||
|
|
||||||
mod clues;
|
|
||||||
pub use clues::Clues;
|
|
||||||
|
|
||||||
mod relationship;
|
|
||||||
pub use relationship::Relationship;
|
|
||||||
|
|
||||||
mod register;
|
|
||||||
pub use register::Register;
|
|
||||||
|
|
||||||
mod documents;
|
|
||||||
pub use documents::Documents;
|
|
||||||
|
|
||||||
mod home;
|
|
||||||
pub use home::Home;
|
|
@ -1,334 +0,0 @@
|
|||||||
use web_sys::{KeyboardEvent, MouseEvent};
|
|
||||||
use yew::{classes, function_component, html, Html};
|
|
||||||
use yew_router::components::Link;
|
|
||||||
|
|
||||||
use crate::{router::Route, validation};
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn Clues() -> Html {
|
|
||||||
let mails = yew::use_state(|| vec![]);
|
|
||||||
let mails_callback = mails.clone();
|
|
||||||
|
|
||||||
let mail = yew::NodeRef::default();
|
|
||||||
let mail_add = {
|
|
||||||
let mail = mail.clone();
|
|
||||||
yew::Callback::from(move |_| {
|
|
||||||
if let Some(input) = mail.cast::<web_sys::HtmlInputElement>() {
|
|
||||||
let mut m = mails_callback.to_vec();
|
|
||||||
let mail = input.value();
|
|
||||||
let mut classes = input.class_name();
|
|
||||||
match validation::validate_email(&mail) {
|
|
||||||
true => {
|
|
||||||
if !m.contains(&mail) {
|
|
||||||
m.push(mail);
|
|
||||||
input.set_value("");
|
|
||||||
}
|
|
||||||
input.set_class_name(&classes.replace("validation-error", ""));
|
|
||||||
mails_callback.set(m);
|
|
||||||
}
|
|
||||||
false => match classes.find("validation-error") {
|
|
||||||
Some(_) => {}
|
|
||||||
None => {
|
|
||||||
classes.push_str(" validation-error");
|
|
||||||
input.set_class_name(&classes);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
};
|
|
||||||
let on_mail_add = mail_add.clone();
|
|
||||||
let on_mail_add_press = {
|
|
||||||
yew::Callback::from(move |event: KeyboardEvent| {
|
|
||||||
if event.key() == "Enter" {
|
|
||||||
on_mail_add.emit(());
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
|
||||||
let on_mail_add_click = yew::Callback::from(move |_: MouseEvent| mail_add.emit(()));
|
|
||||||
|
|
||||||
let on_mail_remove = {
|
|
||||||
let mails = mails.clone();
|
|
||||||
yew::Callback::from(move |index| {
|
|
||||||
let mut new = (*mails).clone();
|
|
||||||
new.remove(index);
|
|
||||||
mails.set(new);
|
|
||||||
})
|
|
||||||
};
|
|
||||||
let phones = yew::use_state(|| vec![]);
|
|
||||||
let phones_callback = phones.clone();
|
|
||||||
|
|
||||||
let phone = yew::NodeRef::default();
|
|
||||||
let phone_add = {
|
|
||||||
let phone = phone.clone();
|
|
||||||
yew::Callback::from(move |_| {
|
|
||||||
if let Some(input) = phone.cast::<web_sys::HtmlInputElement>() {
|
|
||||||
let mut m = phones_callback.to_vec();
|
|
||||||
let phone = input.value();
|
|
||||||
let mut classes = input.class_name();
|
|
||||||
match validation::validate_phone_number(&phone) {
|
|
||||||
true => {
|
|
||||||
if !m.contains(&phone) {
|
|
||||||
m.push(phone);
|
|
||||||
input.set_value("");
|
|
||||||
}
|
|
||||||
input.set_class_name(&classes.replace("validation-error", ""));
|
|
||||||
phones_callback.set(m);
|
|
||||||
}
|
|
||||||
false => {
|
|
||||||
match classes.find("validation-error") {
|
|
||||||
Some(_) => {}
|
|
||||||
None => {
|
|
||||||
classes.push_str(" validation-error");
|
|
||||||
input.set_class_name(&classes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// classes.retain("validation_error");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
})
|
|
||||||
};
|
|
||||||
let on_phone_add = phone_add.clone();
|
|
||||||
let on_phone_add_press = yew::Callback::from(move |event: KeyboardEvent| {
|
|
||||||
if event.key() == "Enter" {
|
|
||||||
on_phone_add.emit(());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
let on_phone_add_click = yew::Callback::from(move |_: MouseEvent| phone_add.emit(()));
|
|
||||||
|
|
||||||
let on_phone_remove = {
|
|
||||||
let phones = phones.clone();
|
|
||||||
yew::Callback::from(move |index| {
|
|
||||||
let mut new = (*phones).clone();
|
|
||||||
new.remove(index);
|
|
||||||
phones.set(new);
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
|
|
||||||
<section id="navigation" class="mb-12">
|
|
||||||
<h3
|
|
||||||
class="text-primary
|
|
||||||
hover:bg-text-dark
|
|
||||||
hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
font-bold text-xl
|
|
||||||
rounded-md
|
|
||||||
text-black
|
|
||||||
absolute
|
|
||||||
top-4
|
|
||||||
left-4
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<Link<Route> to={Route::Deceased}>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<svg
|
|
||||||
class="w-8 "
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
|
|
||||||
</svg>
|
|
||||||
{ "Zurück" }
|
|
||||||
</div>
|
|
||||||
</Link<Route>>
|
|
||||||
</h3>
|
|
||||||
<svg
|
|
||||||
class="text-white w-0 md:w-56 top-4 right-4 absolute"
|
|
||||||
fill="currentColor"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 3e3 2e3"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<style type="text/css" />
|
|
||||||
<path
|
|
||||||
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</section>
|
|
||||||
<section class="fade-in w-full max-w-lg" id="content">
|
|
||||||
<div class="flex flex-col items-center justify-between">
|
|
||||||
<div class="flex flex-col items-start">
|
|
||||||
<h3 class="text-3xl font-bold mb-4">{ "Spurhinweise hinzufügen" }</h3>
|
|
||||||
<p class="mb-6">
|
|
||||||
{ "Füge alle dir bekannten E-Mail Adressen und Telefonnummern hinzu." }
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
class="flex flex-col justify-between items-center w-full mb-10 space-y-4 md:space-y-4"
|
|
||||||
>
|
|
||||||
<div class="flex justify-between w-full relative">
|
|
||||||
<h3 class="font-bold text-2xl ">{ "E-Mail Adressen" }</h3>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-center items-center space-x-4 w-full">
|
|
||||||
<input
|
|
||||||
onkeypress={on_mail_add_press}
|
|
||||||
type="email"
|
|
||||||
id="email"
|
|
||||||
ref={mail}
|
|
||||||
class={classes!(
|
|
||||||
"duration-700",
|
|
||||||
"font-bold",
|
|
||||||
"text-lg",
|
|
||||||
"transition",
|
|
||||||
"group-hover:cursor-pointer",
|
|
||||||
"bg-transparent",
|
|
||||||
"border-white",
|
|
||||||
"hover:border-[#33d9b2]",
|
|
||||||
"hover:curser-pointer",
|
|
||||||
"focus-within:bg-[#33d9b2]",
|
|
||||||
"active:bg-[#33d9b2]",
|
|
||||||
"border-2",
|
|
||||||
"text-center",
|
|
||||||
"text-primary",
|
|
||||||
"focus-within:text-black",
|
|
||||||
"w-full",
|
|
||||||
"h-16",
|
|
||||||
"rounded-md","visible"
|
|
||||||
)}
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
<button onclick={on_mail_add_click}>
|
|
||||||
<svg
|
|
||||||
class="text-primary w-16"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path
|
|
||||||
d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
{ mails.iter().enumerate().map(|(index,item)| {
|
|
||||||
html! {
|
|
||||||
<div class="flex justify-start items-center space-x-4 w-full">
|
|
||||||
<button onclick={on_mail_remove.reform(move |_| index)}> <svg
|
|
||||||
class="w-10 text-danger"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path
|
|
||||||
d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
<p class="text-md">{ item}</p>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}).collect::<Html>() }
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="flex flex-col justify-center items-center w-full mb-6 space-y-4 md:space-y-4"
|
|
||||||
>
|
|
||||||
<div class="flex justify-between w-full relative">
|
|
||||||
<h3 class="font-bold text-2xl ">{ "Telefonnummern" }</h3>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-center items-center space-x-4 w-full">
|
|
||||||
<input
|
|
||||||
onkeypress={on_phone_add_press}
|
|
||||||
id="phone"
|
|
||||||
ref={phone}
|
|
||||||
class={classes!(
|
|
||||||
"duration-700",
|
|
||||||
"font-bold",
|
|
||||||
"text-lg",
|
|
||||||
"transition",
|
|
||||||
"group-hover:cursor-pointer",
|
|
||||||
"bg-transparent",
|
|
||||||
"border-white",
|
|
||||||
"hover:border-[#33d9b2]",
|
|
||||||
"hover:curser-pointer",
|
|
||||||
"focus-within:bg-[#33d9b2]",
|
|
||||||
"active:bg-[#33d9b2]",
|
|
||||||
"border-2",
|
|
||||||
"text-center",
|
|
||||||
"text-primary",
|
|
||||||
"focus-within:text-black",
|
|
||||||
"w-full",
|
|
||||||
"h-16",
|
|
||||||
"rounded-md","visible"
|
|
||||||
)}
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
<button onclick={on_phone_add_click}>
|
|
||||||
<svg
|
|
||||||
class="text-primary w-16"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path
|
|
||||||
d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
{ phones.iter().enumerate().map(|(index,item)| {
|
|
||||||
html! {
|
|
||||||
<div class="flex justify-start items-center space-x-4 w-full">
|
|
||||||
<button onclick={on_phone_remove.reform(move |_| index)}> <svg
|
|
||||||
class="w-10 text-danger"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path
|
|
||||||
d="M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
<p class="text-md">{ item}</p>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}).collect::<Html>() }
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section id="next" class="fade-in w-full flex justify-center max-w-lg mb-4">
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::Documents}
|
|
||||||
classes={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
"font-bold",
|
|
||||||
"text-xl",
|
|
||||||
"max-w-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-16",
|
|
||||||
"h-16",
|
|
||||||
"flex",
|
|
||||||
"justify-center",
|
|
||||||
"items-center",
|
|
||||||
"mb-12",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Weiter" }
|
|
||||||
</Link<Route>>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,155 +0,0 @@
|
|||||||
use yew::{function_component, html, Html};
|
|
||||||
use yew_router::components::Link;
|
|
||||||
|
|
||||||
use crate::router::Route;
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn Deceased() -> Html {
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
|
|
||||||
<section id="navigation" class="mb-2 md:mb-12 lg:mb-0">
|
|
||||||
<h3
|
|
||||||
class="text-primary
|
|
||||||
hover:bg-text-dark
|
|
||||||
hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
font-bold text-xl
|
|
||||||
rounded-md
|
|
||||||
text-black
|
|
||||||
absolute
|
|
||||||
top-4
|
|
||||||
left-4
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<Link<Route> to={Route::Register}>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<svg
|
|
||||||
class="w-8 "
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
|
|
||||||
</svg>
|
|
||||||
{ "Zurück" }
|
|
||||||
</div>
|
|
||||||
</Link<Route>>
|
|
||||||
</h3>
|
|
||||||
<svg
|
|
||||||
class="text-white w-0 md:w-56 top-4 right-4 absolute"
|
|
||||||
fill="currentColor"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 3e3 2e3"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<style type="text/css" />
|
|
||||||
<path
|
|
||||||
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</section>
|
|
||||||
<section class="fade-in w-full max-w-lg" id="content">
|
|
||||||
<div class="flex flex-col justify-between items-start">
|
|
||||||
<h3 class="text-3xl font-bold mb-6">{ "Verstorbene Person" }</h3>
|
|
||||||
<div class="group w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Vorname" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Nachname" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group w-full mb-4">
|
|
||||||
<div class="flex justify-between space-x-4">
|
|
||||||
<div class="w-full">
|
|
||||||
<p class="text-start text-md mb-1">{ "Straße" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="w-24">
|
|
||||||
<p class="text-start text-md mb-1 w-16">{ "Nr." }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="group w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Postleitzahl" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Ort" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Geburtsort" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Geburtstag" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md cx-date-picker"
|
|
||||||
type="date"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group w-full mb-5">
|
|
||||||
<p class="text-start text-md mb-1">{ "Todestag" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md cx-date-picker"
|
|
||||||
type="date"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section id="next" class="w-full fade-in flex justify-center max-w-lg mb-6">
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::Clues}
|
|
||||||
classes={yew::classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition", "duration-150",
|
|
||||||
"font-bold", "text-xl",
|
|
||||||
"max-w-sm",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"h-16",
|
|
||||||
"flex", "justify-center", "items-center",
|
|
||||||
"mb-12",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Weiter" }
|
|
||||||
</Link<Route>>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,206 +0,0 @@
|
|||||||
use yew::{classes, function_component, html, Html};
|
|
||||||
use yew_router::components::Link;
|
|
||||||
|
|
||||||
use crate::router::Route;
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn Documents() -> Html {
|
|
||||||
let show = true;
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
|
|
||||||
<section id="navigation" class="mb-12">
|
|
||||||
<h3
|
|
||||||
class="text-primary
|
|
||||||
hover:bg-text-dark
|
|
||||||
hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
font-bold text-xl
|
|
||||||
rounded-md
|
|
||||||
text-black
|
|
||||||
absolute
|
|
||||||
top-4
|
|
||||||
left-4
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<Link<Route> to={Route::Clues}>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<svg
|
|
||||||
class="w-8 "
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
|
|
||||||
</svg>
|
|
||||||
{ "Zurück" }
|
|
||||||
</div>
|
|
||||||
</Link<Route>>
|
|
||||||
</h3>
|
|
||||||
<svg
|
|
||||||
class="text-white w-0 md:w-56 top-4 right-4 absolute"
|
|
||||||
fill="currentColor"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 3e3 2e3"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<style type="text/css" />
|
|
||||||
<path
|
|
||||||
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</section>
|
|
||||||
<section class="flex flex-col space-y-8 fade-in w-full max-w-lg " id="content">
|
|
||||||
// <div class="flex flex-col items-start">
|
|
||||||
<h3 class="text-3xl font-bold mb-2 md:mb-10">{ "Dokumente bereitstellen" }</h3>
|
|
||||||
// </div>
|
|
||||||
<div class="flex items-center space-x-4 justify-between">
|
|
||||||
<svg
|
|
||||||
class="text-primary w-16"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 -960 960 960"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<button
|
|
||||||
class={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
"font-bold",
|
|
||||||
"text-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-16",
|
|
||||||
"h-16",
|
|
||||||
"flex",
|
|
||||||
"justify-center",
|
|
||||||
"items-center",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Sterbeurkunde" }
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center space-x-4 justify-between">
|
|
||||||
<svg
|
|
||||||
class="text-primary w-16"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 -960 960 960"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<button
|
|
||||||
class={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
"font-bold",
|
|
||||||
"text-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-16",
|
|
||||||
"h-16",
|
|
||||||
"flex",
|
|
||||||
"justify-center",
|
|
||||||
"items-center",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Personalausweis / Reisepass" }
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
if show {
|
|
||||||
<div>
|
|
||||||
<div class="flex items-center space-x-4 justify-between">
|
|
||||||
<svg
|
|
||||||
class="text-primary w-16"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 -960 960 960"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<button
|
|
||||||
class={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
"font-bold",
|
|
||||||
"text-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-16",
|
|
||||||
"h-16",
|
|
||||||
"flex",
|
|
||||||
"justify-center",
|
|
||||||
"items-center",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Erbbescheinigung (Notar)" }
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</section>
|
|
||||||
<section id="next" class="fade-in w-full flex justify-center max-w-lg mb-4">
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::Documents}
|
|
||||||
classes={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
"font-bold",
|
|
||||||
"text-xl",
|
|
||||||
"max-w-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-16",
|
|
||||||
"h-16",
|
|
||||||
"flex",
|
|
||||||
"justify-center",
|
|
||||||
"items-center",
|
|
||||||
"mb-12",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Weiter" }
|
|
||||||
</Link<Route>>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
use yew::{classes, function_component, html, Html};
|
|
||||||
use yew_router::prelude::Link;
|
|
||||||
|
|
||||||
use crate::router::Route;
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn Home() -> Html {
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col items-center h-full space-y-24 px-12 mt-20 mb-20">
|
|
||||||
<div class="flex flex-col items-center space-y-4">
|
|
||||||
<svg class="text-white w-96" fill="currentColor" version="1.1" viewBox="0 0 3e3 2e3" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<style type="text/css"></style>
|
|
||||||
<path class="logo-fadein-right" d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"></path>
|
|
||||||
<path class="logo-fadein-left" d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z" />
|
|
||||||
</svg>
|
|
||||||
<h3 class="text-3xl font-bold text-center ">
|
|
||||||
{ "Digitale Spuren entfernen per Knopfdruck" }
|
|
||||||
</h3>
|
|
||||||
<p class="text-center">
|
|
||||||
{ "Mit uns finden Sie Ihre digitalen Spuren und können diese entfernen." }
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::SignUp}
|
|
||||||
classes={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
"font-bold",
|
|
||||||
"text-xl",
|
|
||||||
"max-w-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-16",
|
|
||||||
"h-16",
|
|
||||||
"flex",
|
|
||||||
"justify-center",
|
|
||||||
"items-center",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Weiter" }
|
|
||||||
</Link<Route>>
|
|
||||||
<div class="flex flex-col items-center space-y-4">
|
|
||||||
<p class="text-center italic">
|
|
||||||
{ "Mit der weiteren Nutzung stimmst du den folgenden Bedingungen zu:" }
|
|
||||||
</p>
|
|
||||||
<div class="text-center flex flex-col items-cneter space-y-1">
|
|
||||||
<a class="text-primary italic" href="#">
|
|
||||||
{ "Allgemeine Geschäftsbedingungen" }
|
|
||||||
</a>
|
|
||||||
<a class="text-primary italic" href="#">{ "Datenschutzerklärung" }</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,147 +0,0 @@
|
|||||||
use yew::{classes, function_component, html, Html};
|
|
||||||
use yew_router::components::Link;
|
|
||||||
|
|
||||||
use crate::router::Route;
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn Register() -> Html {
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
|
|
||||||
<section id="navigation" class="mb-2 md:mb-12 lg:mb-0">
|
|
||||||
<h3
|
|
||||||
class="text-primary
|
|
||||||
hover:bg-text-dark
|
|
||||||
hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
font-bold text-xl
|
|
||||||
rounded-md
|
|
||||||
text-black
|
|
||||||
absolute
|
|
||||||
top-4
|
|
||||||
left-4
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<Link<Route> to={Route::SignUp}>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<svg
|
|
||||||
class="w-8 "
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
|
|
||||||
</svg>
|
|
||||||
{ "Zurück" }
|
|
||||||
</div>
|
|
||||||
</Link<Route>>
|
|
||||||
</h3>
|
|
||||||
<svg
|
|
||||||
class="text-white w-0 md:w-56 top-4 right-4 absolute"
|
|
||||||
fill="currentColor"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 3e3 2e3"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<style type="text/css" />
|
|
||||||
<path
|
|
||||||
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</section>
|
|
||||||
<section id="content" class="fade-in w-full max-w-lg">
|
|
||||||
<div class="flex flex-col items-start">
|
|
||||||
<h3 class="text-3xl font-bold mb-6">{ "Registrierung abschließen" }</h3>
|
|
||||||
<div class="group max-w-xl w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Vorname" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group max-w-xl w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Nachname" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group max-w-xl w-full mb-4">
|
|
||||||
<div class="flex justify-between space-x-4">
|
|
||||||
<div class="w-full">
|
|
||||||
<p class="text-start text-md mb-1">{ "Straße" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="w-24">
|
|
||||||
<p class="text-start text-md mb-1 w-16">{ "Nr." }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="group max-w-xl w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Postleitzahl" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group max-w-xl w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Ort" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group max-w-xl w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Telefonnummer" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="group max-w-xl w-full mb-4">
|
|
||||||
<p class="text-start text-md mb-1">{ "Geburtsort" }</p>
|
|
||||||
<input
|
|
||||||
class="duration-700 font-bold text-md transition group-hover:cursor-pointer bg-transparent border-white hover:border-[#33d9b2] hover:curser-pointer focus-within:bg-[#33d9b2] active:bg-[#33d9b2] border-b text-center focus-within:text-black w-full h-10 rounded-md"
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section id="next" class="fade-in mb-6 w-full flex justify-center items-center">
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::Deceased}
|
|
||||||
classes={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition", "duration-150",
|
|
||||||
"font-bold", "text-xl",
|
|
||||||
"max-w-sm",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"h-16",
|
|
||||||
"mb-12","flex", "justify-center", "items-center",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Weiter" }
|
|
||||||
</Link<Route>>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,142 +0,0 @@
|
|||||||
use yew::{classes, function_component, html, Html};
|
|
||||||
use yew_router::components::Link;
|
|
||||||
|
|
||||||
use crate::router::Route;
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn Relationship() -> Html {
|
|
||||||
let classes = classes!("fade-in");
|
|
||||||
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
|
|
||||||
<section id="navigation" class="mb-2 md:mb-32">
|
|
||||||
<div class="flex justify-between">
|
|
||||||
<h3
|
|
||||||
class="text-primary
|
|
||||||
hover:bg-text-dark
|
|
||||||
hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
font-bold text-xl
|
|
||||||
rounded-md
|
|
||||||
text-black
|
|
||||||
absolute
|
|
||||||
text-center
|
|
||||||
top-4
|
|
||||||
left-4
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<Link<Route> to={Route::Clues}>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<svg
|
|
||||||
class="w-8 "
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
|
|
||||||
</svg>
|
|
||||||
{ "Zurück" }
|
|
||||||
</div>
|
|
||||||
</Link<Route>>
|
|
||||||
</h3>
|
|
||||||
<svg
|
|
||||||
class="text-white w-0 md:w-56 top-4 right-4 absolute"
|
|
||||||
fill="currentColor"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 3e3 2e3"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<style type="text/css" />
|
|
||||||
<path
|
|
||||||
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section id="content" class={classes}>
|
|
||||||
<div class="flex flex-col items-center ">
|
|
||||||
<h3 class="text-3xl font-bold mb-6 text-center">
|
|
||||||
{ "In welcher Beziehung stehst du zu der verstorbenen Person?" }
|
|
||||||
</h3>
|
|
||||||
<div class="flex flex-col items-start min-w-72 md:w-auto mb-32">
|
|
||||||
<div class="flex items-center mb-4">
|
|
||||||
<input
|
|
||||||
id="relationship-widow"
|
|
||||||
type="radio"
|
|
||||||
value=""
|
|
||||||
name="relationship"
|
|
||||||
class="w-4 h-4 accent-primary"
|
|
||||||
/>
|
|
||||||
<label for="relationship-widow" class="ms-2 ">
|
|
||||||
{ "Ich bin die Witwe / der Witwer der verstorbenen Person" }
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center mb-4">
|
|
||||||
<input
|
|
||||||
id="relationship-soleheir"
|
|
||||||
type="radio"
|
|
||||||
value=""
|
|
||||||
name="relationship"
|
|
||||||
class="w-4 h-4 text-primary accent-primary"
|
|
||||||
/>
|
|
||||||
<label for="relationship-soleheir" class="ms-2">
|
|
||||||
<p>
|
|
||||||
{ "Ich bin notarielle(r) " }
|
|
||||||
<u>
|
|
||||||
<strong>{ "Alleinerbin / Alleinerbe" }</strong>
|
|
||||||
</u>
|
|
||||||
</p>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center mb-4">
|
|
||||||
<input
|
|
||||||
id="relationship-child"
|
|
||||||
type="radio"
|
|
||||||
value=""
|
|
||||||
name="relationship"
|
|
||||||
class="w-4 h-4 accent-primary"
|
|
||||||
/>
|
|
||||||
<label for="relationship-child" class="ms-2">
|
|
||||||
{ "Ich bin ein Kind der verstorbenen Person" }
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-center max-w-xl w-full mb-6">
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::Relationship}
|
|
||||||
classes={classes!("bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
"font-bold",
|
|
||||||
"text-xl",
|
|
||||||
"max-w-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-16",
|
|
||||||
"h-16",
|
|
||||||
"flex",
|
|
||||||
"justify-center",
|
|
||||||
"items-center",
|
|
||||||
"mb-12",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Weiter" }
|
|
||||||
</Link<Route>>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,222 +0,0 @@
|
|||||||
use crate::{
|
|
||||||
router::Route,
|
|
||||||
storage::{self, UserData},
|
|
||||||
};
|
|
||||||
use web_sys::HtmlInputElement;
|
|
||||||
use yew::{classes, function_component, html, Html};
|
|
||||||
use yew_router::components::Link;
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn SignUp() -> Html {
|
|
||||||
let (_, dispatch) = yewdux::use_store::<UserData>();
|
|
||||||
|
|
||||||
let register = yew::functional::use_state(|| true);
|
|
||||||
let reg = register.clone();
|
|
||||||
let reg_onchange = yew::Callback::from(move |_| {
|
|
||||||
reg.set(!*reg);
|
|
||||||
});
|
|
||||||
|
|
||||||
let password: yew::NodeRef = yew::NodeRef::default();
|
|
||||||
let pwd = password.clone();
|
|
||||||
let pwd_onchange = yew::Callback::from(move |_| {
|
|
||||||
if let Some(p) = pwd.cast::<HtmlInputElement>() {
|
|
||||||
// TODO: Remove as soon as the Logic is implemented.
|
|
||||||
gloo_console::log!(format!("Password: {}", p.value()));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
let mail_check = yew::functional::use_state(|| true);
|
|
||||||
let mc = mail_check.clone();
|
|
||||||
|
|
||||||
let email: yew::NodeRef = yew::NodeRef::default();
|
|
||||||
let mail = email.clone();
|
|
||||||
let onchange = yew::Callback::from(move |_| {
|
|
||||||
let dispatch = dispatch.clone();
|
|
||||||
if let Some(m) = mail.cast::<HtmlInputElement>() {
|
|
||||||
// TODO: Remove as soon as the Logic is implemented.
|
|
||||||
gloo_console::log!(format!("E-Mail: {}", m.value()));
|
|
||||||
|
|
||||||
if !m.value().is_empty() {
|
|
||||||
storage::set_email_address(dispatch, Some(m.value()));
|
|
||||||
mc.set(false);
|
|
||||||
} else {
|
|
||||||
mc.set(true);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
|
|
||||||
<section id="navigation" class="mb-12">
|
|
||||||
<h3
|
|
||||||
class="text-primary
|
|
||||||
hover:bg-text-dark
|
|
||||||
hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
font-bold text-xl
|
|
||||||
rounded-md
|
|
||||||
text-black
|
|
||||||
top-4
|
|
||||||
left-4
|
|
||||||
absolute
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<Link<Route> to={Route::Home}>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<svg
|
|
||||||
class="w-8 "
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
|
|
||||||
</svg>
|
|
||||||
{ "Zurück" }
|
|
||||||
</div>
|
|
||||||
</Link<Route>>
|
|
||||||
</h3>
|
|
||||||
<svg
|
|
||||||
class="text-white w-0 md:w-56 top-4 right-4 absolute"
|
|
||||||
fill="currentColor"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 3e3 2e3"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<style type="text/css" />
|
|
||||||
<path
|
|
||||||
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</section>
|
|
||||||
<section id="content" class="w-full fade-in">
|
|
||||||
<div class="min-height mt-64 md:flex md:flex-col md:items-center">
|
|
||||||
<h3 class="text-3xl font-bold mb-6">
|
|
||||||
{ "Jetzt " }
|
|
||||||
{ register.then(||Some("registrieren")).unwrap_or(Some("einloggen")).unwrap() }
|
|
||||||
</h3>
|
|
||||||
<div
|
|
||||||
class={classes!(
|
|
||||||
"group",
|
|
||||||
"max-w-xl",
|
|
||||||
"w-full",
|
|
||||||
"mb-4",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
<label for="email">{ "Gib deine E-Mail Adresse ein." }</label>
|
|
||||||
<input
|
|
||||||
id="email"
|
|
||||||
ref={email}
|
|
||||||
onchange={onchange}
|
|
||||||
class={classes!(
|
|
||||||
"duration-700",
|
|
||||||
"font-bold",
|
|
||||||
"text-lg",
|
|
||||||
"transition",
|
|
||||||
"group-hover:cursor-pointer",
|
|
||||||
"bg-transparent",
|
|
||||||
"border-white",
|
|
||||||
"hover:border-[#33d9b2]",
|
|
||||||
"hover:curser-pointer",
|
|
||||||
"focus-within:bg-[#33d9b2]",
|
|
||||||
"active:bg-[#33d9b2]",
|
|
||||||
"border-2",
|
|
||||||
"text-center",
|
|
||||||
"text-primary",
|
|
||||||
"focus-within:text-black",
|
|
||||||
"w-full",
|
|
||||||
"h-16",
|
|
||||||
"mt-4",
|
|
||||||
"rounded-md","visible"
|
|
||||||
)}
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class={classes!("group","max-w-xl","mb-4","w-full",)}>
|
|
||||||
<label for="password">
|
|
||||||
{ register.then(||Some("Gib deinem Konto ein Passwort.")).unwrap_or(Some("Gib dein Passwort ein.")).unwrap() }
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
ref={password}
|
|
||||||
onchange={pwd_onchange}
|
|
||||||
id="password"
|
|
||||||
class={classes!(
|
|
||||||
"duration-700",
|
|
||||||
"font-bold",
|
|
||||||
"text-lg",
|
|
||||||
"transition",
|
|
||||||
"group-hover:cursor-pointer",
|
|
||||||
"bg-transparent",
|
|
||||||
"border-white",
|
|
||||||
"hover:border-[#33d9b2]",
|
|
||||||
"hover:curser-pointer",
|
|
||||||
"focus-within:bg-[#33d9b2]",
|
|
||||||
"active:bg-[#33d9b2]",
|
|
||||||
"border-2",
|
|
||||||
"text-center",
|
|
||||||
"text-primary",
|
|
||||||
"focus-within:text-black",
|
|
||||||
"w-full",
|
|
||||||
"h-16",
|
|
||||||
"mt-4",
|
|
||||||
"rounded-md",
|
|
||||||
)}
|
|
||||||
type="text"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class={classes!(
|
|
||||||
"flex",
|
|
||||||
"justify-between",
|
|
||||||
"max-w-xl",
|
|
||||||
"w-full",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class={classes!(
|
|
||||||
"text-primary",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition",
|
|
||||||
"duration-150",
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
<button onclick={reg_onchange}>
|
|
||||||
{ "Stattdessen " }
|
|
||||||
{ register.then(||Some("anmelden")).unwrap_or(Some("registrieren")).unwrap() }
|
|
||||||
</button>
|
|
||||||
// <Link<Route> to={Route::SignUp}>{ "Stattdessen anmelden" }</Link<Route>>
|
|
||||||
</div>
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::Verify}
|
|
||||||
classes={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition", "duration-150",
|
|
||||||
"font-bold", "text-xl",
|
|
||||||
"max-w-36",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"w-full",
|
|
||||||
"min-h-12",
|
|
||||||
"h-12",
|
|
||||||
"flex", "justify-center", "items-center","mb-12"
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ register.then(||Some("Weiter")).unwrap_or(Some("Anmelden")).unwrap() }
|
|
||||||
</Link<Route>>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,123 +0,0 @@
|
|||||||
use yew::{classes, function_component, html, Html};
|
|
||||||
use yew_router::components::Link;
|
|
||||||
|
|
||||||
use crate::router::Route;
|
|
||||||
use crate::storage;
|
|
||||||
|
|
||||||
#[function_component]
|
|
||||||
pub fn Verify() -> Html {
|
|
||||||
let (state, _) = yewdux::use_store::<storage::UserData>();
|
|
||||||
let resend_onclick = yew::Callback::from(move |_| {
|
|
||||||
gloo_console::log!(format!("Resending E-Mail to '{:?}'", state.email_address()));
|
|
||||||
});
|
|
||||||
html! {
|
|
||||||
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
|
|
||||||
<section id="navigation" class="mb-2 md:mb-12 lg:mb-0">
|
|
||||||
<h3
|
|
||||||
class="text-primary
|
|
||||||
hover:bg-text-dark
|
|
||||||
hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
font-bold text-xl
|
|
||||||
rounded-md
|
|
||||||
text-black
|
|
||||||
absolute
|
|
||||||
top-4
|
|
||||||
left-4
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<Link<Route> to={Route::SignUp}>
|
|
||||||
<div class="flex items-center">
|
|
||||||
<svg
|
|
||||||
class="w-8 "
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
|
|
||||||
</svg>
|
|
||||||
{ "Zurück" }
|
|
||||||
</div>
|
|
||||||
</Link<Route>>
|
|
||||||
</h3>
|
|
||||||
<svg
|
|
||||||
class="text-white w-0 md:w-56 top-4 right-4 absolute"
|
|
||||||
fill="currentColor"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 3e3 2e3"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
>
|
|
||||||
<style type="text/css" />
|
|
||||||
<path
|
|
||||||
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</section>
|
|
||||||
<section id="content" class="fade-in">
|
|
||||||
<div class="flex flex-col items-center">
|
|
||||||
<h3 class="text-3xl font-bold mb-6">{ "Verifizieren" }</h3>
|
|
||||||
<div class="flex flex-col items-start min-w-72 md:w-auto">
|
|
||||||
<p class="mb-3">{ "Bitte verifiziere deine E-Mail Adresse." }</p>
|
|
||||||
<p class="mb-8">{ "Wir haben dir eine E-Mail geschickt." }</p>
|
|
||||||
<div class="h-24 w-full">
|
|
||||||
<svg
|
|
||||||
class="mail-animation mb-12 w-16 text-primary"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
fill="currentColor"
|
|
||||||
>
|
|
||||||
<path d="M0 0h24v24H0z" fill="none" />
|
|
||||||
<path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" />
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<p class="mb-8">{ "Dann geht es hier weiter." }</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex justify-center max-w-56 w-full mb-6">
|
|
||||||
<Link<Route>
|
|
||||||
to={Route::Register}
|
|
||||||
classes={classes!(
|
|
||||||
"bg-primary",
|
|
||||||
"hover:bg-primary-dark",
|
|
||||||
"hover:text-white",
|
|
||||||
"hover:-translate-y-1",
|
|
||||||
"hover:cursor-pointer",
|
|
||||||
"transition", "duration-150",
|
|
||||||
"font-bold", "text-xl",
|
|
||||||
"rounded-md",
|
|
||||||
"text-black",
|
|
||||||
"text-center",
|
|
||||||
"max-w-sm",
|
|
||||||
"w-full",
|
|
||||||
"min-h-12",
|
|
||||||
"h-12",
|
|
||||||
"flex", "justify-center", "items-center","mb-12"
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{ "Weiter" }
|
|
||||||
</Link<Route>>
|
|
||||||
</div>
|
|
||||||
<div class="flex flex-col items-start min-w-72 md:w-auto">
|
|
||||||
<p class="mb-1">{ "Noch keine E-Mail erhalten?" }</p>
|
|
||||||
<p class="mb-4">{ "Spam Ordner schon überprüft?" }</p>
|
|
||||||
<div
|
|
||||||
class="text-primary hover:text-white
|
|
||||||
hover:-translate-y-1
|
|
||||||
hover:cursor-pointer
|
|
||||||
transition duration-150
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<button onclick={resend_onclick}>{ "Erneut senden" }</button>
|
|
||||||
//<Link<Route> to={Route::SignUp}>{ "Erneut senden" }</Link<Route>>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
use crate::pages::{Clues, Deceased, Documents, Home, Register, Relationship, SignUp, Verify};
|
|
||||||
|
|
||||||
use yew::{function_component, html, Html};
|
|
||||||
use yew_router::prelude::*;
|
|
||||||
#[derive(Clone, Routable, PartialEq)]
|
|
||||||
pub enum Route {
|
|
||||||
#[at("/")]
|
|
||||||
#[not_found]
|
|
||||||
Home,
|
|
||||||
#[at("/signup")]
|
|
||||||
SignUp,
|
|
||||||
#[at("/verify")]
|
|
||||||
Verify,
|
|
||||||
#[at("/register")]
|
|
||||||
Register,
|
|
||||||
#[at("/deceased")]
|
|
||||||
Deceased,
|
|
||||||
#[at("/clues")]
|
|
||||||
Clues,
|
|
||||||
#[at("/relationship")]
|
|
||||||
Relationship,
|
|
||||||
#[at("/documents")]
|
|
||||||
Documents,
|
|
||||||
}
|
|
||||||
|
|
||||||
fn route(routes: Route) -> Html {
|
|
||||||
match routes {
|
|
||||||
Route::Documents => {
|
|
||||||
html! { <Documents /> }
|
|
||||||
}
|
|
||||||
Route::Home => {
|
|
||||||
html! { <Home /> }
|
|
||||||
}
|
|
||||||
Route::SignUp => {
|
|
||||||
html! { <SignUp /> }
|
|
||||||
}
|
|
||||||
Route::Verify => {
|
|
||||||
html! { <Verify /> }
|
|
||||||
}
|
|
||||||
Route::Register => {
|
|
||||||
html! { <Register /> }
|
|
||||||
}
|
|
||||||
Route::Deceased => {
|
|
||||||
html! { <Deceased /> }
|
|
||||||
}
|
|
||||||
Route::Clues => {
|
|
||||||
html! { <Clues /> }
|
|
||||||
}
|
|
||||||
Route::Relationship => {
|
|
||||||
html! { <Relationship /> }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[function_component(Main)]
|
|
||||||
pub fn app() -> Html {
|
|
||||||
html! {
|
|
||||||
<BrowserRouter>
|
|
||||||
<Switch<Route> render={route} />
|
|
||||||
</BrowserRouter>
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
|
||||||
use yewdux::Store;
|
|
||||||
|
|
||||||
#[derive(Debug, Default, Clone, PartialEq, Store, Serialize, Deserialize)]
|
|
||||||
#[store(storage = "local")]
|
|
||||||
pub struct UserData {
|
|
||||||
id: Option<String>,
|
|
||||||
email_address: Option<String>,
|
|
||||||
token: Option<String>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl UserData {
|
|
||||||
pub fn email_address(&self) -> Option<String> {
|
|
||||||
self.email_address.clone()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn id(&self) -> Option<String> {
|
|
||||||
self.id.clone()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn token(&self) -> Option<String> {
|
|
||||||
self.token.clone()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn set_email_address(dispatch: yewdux::Dispatch<UserData>, email_address: Option<String>) {
|
|
||||||
dispatch.reduce_mut(move |store| {
|
|
||||||
store.email_address = email_address;
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn set_token(dispatch: yewdux::Dispatch<UserData>, token: Option<String>) {
|
|
||||||
dispatch.reduce_mut(move |store| {
|
|
||||||
store.token = token;
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn set_id(dispatch: yewdux::Dispatch<UserData>, id: Option<String>) {
|
|
||||||
dispatch.reduce_mut(move |store| {
|
|
||||||
store.id = id;
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
use regex::Regex;
|
|
||||||
|
|
||||||
pub fn validate_email(email: &str) -> bool {
|
|
||||||
// Regular expression pattern for email validation
|
|
||||||
let email_regex = Regex::new(r"^[\w\.-]+@[\w\.-]+\.\w+$").unwrap();
|
|
||||||
|
|
||||||
email_regex.is_match(email)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn validate_phone_number(phone_number: &str) -> bool {
|
|
||||||
// Regular expression pattern for phone number validation (all countries)
|
|
||||||
let phone_regex = Regex::new(r"^[\+0][\-.,\(\)\d\s]*$").unwrap();
|
|
||||||
|
|
||||||
phone_regex.is_match(phone_number)
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
purge: {
|
|
||||||
mode: "all",
|
|
||||||
content: [
|
|
||||||
"./src/**/*.rs",
|
|
||||||
"./src/pages/documents.rs",
|
|
||||||
"./index.html",
|
|
||||||
"./src/**/*.html",
|
|
||||||
"./src/**/*.css",
|
|
||||||
],
|
|
||||||
},
|
|
||||||
theme: {},
|
|
||||||
variants: {},
|
|
||||||
plugins: [],
|
|
||||||
};
|
|