chore/remove current frontend - will be replaced with angular
24
flake.nix
@ -11,17 +11,17 @@
|
||||
|
||||
# Flake outputs
|
||||
outputs = { self, nixpkgs, rust-overlay}:
|
||||
let
|
||||
#let
|
||||
# Overlays enable you to customize the Nixpkgs attribute set
|
||||
overlays = [
|
||||
#overlays = [
|
||||
# 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
|
||||
# create a Rust environment
|
||||
(self: super: {
|
||||
rustToolchain = super.rust-bin.stable.latest.default;
|
||||
})
|
||||
];
|
||||
#(self: super: {
|
||||
#rustToolchain = super.rust-bin.stable.latest.default;
|
||||
#})
|
||||
# ];
|
||||
|
||||
# Systems supported
|
||||
allSystems = [
|
||||
@ -55,11 +55,11 @@
|
||||
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
|
||||
# rust-analyzer
|
||||
# clippy
|
||||
# trunk
|
||||
# tailwindcss
|
||||
# rustToolchain
|
||||
]) ++ 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: [],
|
||||
};
|