Wie React Icons ausfüllen / Alternative?

In meiner React Component (siehe unten) ist leider das Icon ArrowUpCircleSharp von "react-icons" innen unausgefüllt was nicht schön aussieht wenn es sich über Text und Bilder bewegt, andere Icons wie von FontAwesome Material Icons haben das gleiche Problem. Ich habe es versucht mit den Props Stroke, Fill und mit CSS background, ändert aber nur das Schwarze außen und nicht innerhalb vom Icon.
Was kann ich tun ? Will jetzt nicht umbedingt eine ganze Library einbinden für das Icon, bei react-icons hab ich den Vorteil das es nur die benutzen auch wirklich nutzt,

'use client';
import { useEffect, useState } from "react";
import "../.././assets/styles/components/ScrollToTop/ScrollToTop.scss";
import { IoArrowUpCircleSharp} from "react-icons/io5";


export const ScrollToTop = () => {

const [ScrollY,setScrollY] = useState<number>(0);

useEffect(() => {
    window.addEventListener("scroll",() => setScrollY(document.documentElement.scrollTop))

    return () => {
        window.addEventListener("scroll",() => setScrollY(document.documentElement.scrollTop))
    }
}, [ScrollY])

    return(

        <div
            onClick={()=>{ScrollY > 100 ?
            window.scrollTo({
                behavior : "smooth",
                left : 0,
                top : 0})
            :
            window.scrollTo({
                behavior : "smooth",
                left : 0,
                top : document.body.scrollHeight});
            }}
        className={`ScrollToTop ${ScrollY > 100 ? " ScrollToTop_Up" : "ScrollToTop_Down"}`}>
                <IoArrowUpCircleSharp/>
        </div>
    )
}
...zum Beitrag

Ich denke die schnellste Lösung in diesem Fall wäre einfach einen weißen Kreis hinter das Icon zu legen. Dafür könntest du ggf. ein Pseudo-Element (::before / ::after) verwenden, oder einfach ein div, das du um das <IoArrowUpCircleSharp> wrappst.

Mit `aspect-ratio: 1` oder für ältere Browser auch `padding-bottom: 100%` ist das quadratisch und mit `border-radius: 50%` ein schöner runder Kreis. Background-color geben, hinter dem Icon platzieren (falls du ein Pseudo-Element verwendest, ansonsten passt das eh schon) und dann sollte das klappen :)

...zur Antwort

Während `position: fixed` zwar funktioniert, hast du selbst schon das Problem davon gesehen: fixierte Positionierung nimmt das Element aus dem Document-flow und es nimmt keinen Platz mehr darin ein. Dadurch "rutschen" die darauf folgenden Elemente nach und die Navigationsleiste verdeckt den Anfang der Webseite.

Dieses Problem kannst du ganz einfach umgehen, indem du

position: sticky;
top: 0;

verwendest. Sticky Positionierung verhält sich zunächst ganz gewöhnlich und die Navigationsleiste nimmt ihren Platz am Anfang der Seite ein. Scrollt man allerdings runter, bleibt sie am oberen Rand (top: 0) kleben (sticky). Jetzt verhält sie sich so wie mit `position: fixed`.

Um darüber hinaus das Problem mit Sprungmarken (also Verlinkungen auf eine bestimmte Id auf der selben Seite via #id) zu lösen, kannst du

scroll-margin-top: ...;

z.B. zum entsprechenden Element mit der Id hinzufügen. "..." dabei natürlich mit der Höhe deiner Navigationsleiste ersetzen. Mehr dazu findest du hier: https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-margin

...zur Antwort

Die Menüleiste wirst du wahrscheinlich mithilfe von `position: sticky` oder `position: fixed` o.ä. oben platzieren. An dieser Stelle im CSS fügst du einfach noch die Zeile

z-index: 1000;

hinzu. Das sorgt dafür, dass die Menüleiste eine höhere z-Position hat, also vor den anderen Elementen mit niedrigerem z-index ist.

...zur Antwort
Es ist für ein Wirtschaft Projekt und dazu muss man keine aber sollte man eine App oder Website erstellen

(aus einem Kommentar von gestern)

Statt einer App würde ich eine Webseite empfehlen. Geht deutlich schneller und leichter zu entwickeln.
Also wäre zum einen günstiger, falls du wirklich jemanden beauftragen willst. Zum anderen könntest du das aber auch leichter selbst machen. Gibt inzwischen gute Tools um Webseiten grafisch, also ohne Programmieren, zu erstellen. Und auch ein wenig Code für eine Webseite kannst du einfacher selbst lernen und schreiben, als eine komplette App aufzusetzen.

...zur Antwort

Die einfachste Art einen POST-Request an den Server zu schicken ist mithilfe eines Formulars. z.B. so:

<form action="thenextpage.php" method="post">
    <input type="text" name="yourinput"><br>
    <input type="submit">
</form>

Der Grund warum ich als Ziel des Requests "thenextpage.php" angegeben habe, ist dass es vermutlich am leichtesten ist, zunächst ein PHP Backend zu bauen. Du kannst nämlich dann ganz normal HTML schreiben. Aber du kannst dazwischen auch immer kleine PHP-Code-Schnipsel verwenden. Für thenextpage.php dann zum Beispiel so:

<body>
<h1>I recieved your message:</h1>
<p><?php echo $_POST["yourinput"]; ?></p>
</body>

Hier verwendest du PHP um den Inhalt des Post-Request Parameters "yourinput" auszugeben.

...zur Antwort

Ich mein du kannst einfach das Linux PHP package installieren und damit PHP Code auf Android ausführen. Also im Terminal (bzw. per Termux App o.ä.) einfach

apt install php 

Aber das mal beiseite, ich denke nicht, dass das was du da vor hast sinnvoll ist. Was genau willst du denn erreichen? Dafür muss es auch bessere Wege geben, als einen PHP Server auf Android zu hosten 😅

...zur Antwort

Ziemlich offensichtlich würde ich schwarz als Hintergrund- und grün und weiß als Primär-/Sekundärfarbe verwenden. Dann vielleicht klare Kanten ohne Abrundung, teilweise schräge Linien und große, kontrastreiche Typografie.

Was soll denn der Inhalt der Seite sein?

...zur Antwort

Während du wahrscheinlich bei vielen Tutorials noch eine Lösung mit `float: left` und dergleichen siehst, kann man inzwischen ganz einfach flex oder grid dafür verwenden.

Dazu packst du einfach die beiden Elemente in einen gemeinsamen Container und legst dann das Layout dieses Containers als flex fest. Zum Beispiel so:

<div class="outer">
  <img src="https://picsum.photos/200/300">
  <div class="inner">
    Content
  </div>
</div>

CSS:

.outer {
  display: flex;
}

Hier als JSFiddle mit Resultat: https://jsfiddle.net/timlg07/qfswaezo/6/

Mit flex-base bei den Kindelementen und mit object-fit für das Bild kannst du das Layout dann noch an deine Bedürfnisse anpassen.

...zur Antwort

Das liegt daran, dass JavaScript denkt du würdest den Text (String) schon mit dem ersten Anführungszeichen beenden. Wenn du also

document.getElementById("main_div").innnerHTML = "<div id="evaluation"></div>"

schreibst, dann ließt der JS-Parser zunächst

document.getElementById("main_div").innnerHTML = "<div id="

und kann das darauf folgende evaluation nicht verarbeiten.

Um zu signalisieren, dass die Anführungszeichen bei deiner ID Teil des Strings sein sollen, kannst du diese mit einem Backslash escapen:

document.getElementById("main_div").innnerHTML = "<div id=\"evaluation\"></div>"

Alternativ kannst du übrigens Elemente auch direkt im DOM (Document Object Model) erstellen:

const mainDiv = document.getElementById("main_div")
const newDiv = document.createElement("div")
newDiv.id = "evaluation"
mainDiv.appendChild(newDiv)

Ist mMn die bessere und weniger fehleranfälligere Variante.

Ich würde dir darüber hinaus empfehlen eine anständige IDE (Entwicklungsumgebung) zu verwenden. Dann werden dir so einfache Syntax-Fehler direkt angezeigt.

...zur Antwort

Läuft der Bot durchgehend? Dann würde ich einfach einen Timer anlegen, der nach 48h eine Funktion aufruft. Beispiel und weitere Infos: https://docs.python.org/3/library/threading.html#timer-objects

...zur Antwort

Du kannst dafür z.B. den Beep von `choice` missbrauchen, indem du statt einer Benutzereingabe einfach per Pipe eine leere Eingabe reingibst:

echo;|choice/N 2>nul

Für mehr Variation kannst du auch per run-dll folgende Funktion aufrufen:

rundll32.exe Kernel32.dll,Beep 750,300

(https://docs.microsoft.com/de-de/windows/win32/api/utilapiset/nf-utilapiset-beep)

Oder du verwendest dieses Skript hier, das einen Hybrid aus Batch und JScript darstellt:

https://raw.githubusercontent.com/npocmaka/batch.scripts/master/hybrids/.net/systemSounds.bat

...zur Antwort
 ob ein bestimmer Wert (z.B. X) in mindestens einer der fünf Variablen enthalten ist.

Dies sollte recht einfach gehen:

for /L %%i in (1 1 5) do if %X% equ !Var%%i! set /a found += 1

Am Ende ist found == Anzahl der Variablen, die gleich X sind.

Im ersten Fall möchte ich überprüfen, ob mindestens drei davon gleich sind.

Hierfür ein, von der Laufzeit gesehen, komplexerer Algorithmus:

for /L %%i in (1 1 5) do (
  set /a currentlyFound = 0
  for /L %%j in (1 1 5) do (
    if !Var%%i! equ !Var%%j! (
      set /a currentlyFound += 1
    )
  )
  if !currentlyFound! geq 3 echo more than 3 elements are !Var%%i!
)

Die Ausgabe erfolgt dann natürlich 3 oder mehr mal (für jeden Index, der eines der 3 mehrfach vorkommenden Elemente enthält).

Hier noch mal das erste Programm mit Beispielvariablen zum Testen:

@echo off & setlocal enabledelayedexpansion
for /L %%i in (1 1 5) do (
  set /a Var%%i=!random! %% 3
  echo !Var%%i!
)
echo.

set /a X = 2
set /a found = 0

for /L %%i in (1 1 5) do (
  if %X% equ !Var%%i! (
    set /a found += 1
  )
)
echo %X% was found %found% times.
pause

Und das zweite:

@echo off & setlocal enabledelayedexpansion
for /L %%i in (1 1 5) do (
  set /a Var%%i=!random! %% 3
  echo !Var%%i!
)
echo.


for /L %%i in (1 1 5) do (
  set /a currentlyFound = 0
  for /L %%j in (1 1 5) do (
    if !Var%%i! equ !Var%%j! (
      set /a currentlyFound += 1
    )
  )
  if !currentlyFound! geq 3 echo more than 3 elements are !Var%%i!
)
pause
...zur Antwort

(1) Erkennen der Frage nach einem Witz.

Da du anscheinend schon einen funktionierenden Chatbot hast, sollte das ja recht einfach gehen. Du musst also nur z.B. die Keywords Witz, lustig, etc. hinzufügen.

(2) Metadaten über deine Witzdatei erfassen.

Du brauchst hier lediglich die Anzahl an Zeilen, um dir später dann eine davon zufällig aussuchen zu können. Mit einer for-Schleife kannst du die ganz simpel zählen.

(3) Eine Zeile zufällig auswählen.

Die durch %random% generierte Zufallszahl auf den hier benötigten Zahlenbereich von [1; Zeilenlänge] bringen. Sehr simple, wenn auch nicht optimale Methode hierfür wäre:

set /a selectedLine=%random% %% lines + 1

(4) Die Zeile ausgeben.

Du traversierst hierfür alle Zeilen deiner Witze-Datei und gibst die Zeile mit der zuvor berechneten Zeilennummer aus. Dies kannst du mithilfe von findstr /n, mit einer Hilfsvariable oder mittels dekrementieren der selectedLine-Variable erledigen.

Die Schritte 2 bis 4 habe ich in dieser Antwort schon für Verzeichnisse umgesetzt:

https://www.gutefrage.net/frage/cmd-zufaelliges-wort#answer-347286974

Du musst die for-Schleifen also nur noch anpassen, dass sie sich auf Textdateien beziehen.

...zur Antwort

Ich habe vor einiger Zeit bereits auf eine ähnliche Frage geantwortet (https://www.gutefrage.net/frage/batchdatei-hoehere-zufallswert-als-32768#answer-336018767) mithilfe von diesem Code kannst du ganz einfach eine achtstellige Zufallszahl erzeugen, oder 2 vierstellige mit einem Bindestrich aneinanderhängen:

@echo off
call :randomNumber 4
set "n=%return%"
call :randomNumber 4
set "n=%n%-%return%"
echo %n%
pause & exit

:: returns random number (base 10) with %~1 digits.
:randomNumber <digits>
    setlocal enableDelayedExpansion
        set "return="
        for /L %%i in (1,1,%~1) do (
            set /a "r = (10 * !random!) / 32768"
            set "return=!return!!r!"
        )
    endlocal & set "return=%return%"
exit /b
...zur Antwort

Du kannst mit NirCmds "win focus" ein bestimmtes Fenster fokussieren, weiteres dazu findest du hier: https://nircmd.nirsoft.net/win.html

Einen bestimmten Tab des Fensters auswählen geht von der cmd aus nur unter Verwendung von externen Tools, nur sehr sehr aufwendig und alles andere als zuverlässig, da wäre es besser du startest die Seite, die du fokussiert haben willst einfach per "start" von der Batch aus.

Das senden von Tastendrücken kannst du hingegen komplett ohne zusätzlich zu installierende Programme erledigen. Du kannst dir eine vbs Datei erstellen (manuell oder automatisch mit Batch), in der du mit CreateObject("WScript.Shell") ein shell Objekt anlegst und auf diesem dann SendKeys aufrufst.

Was hast du denn endgültig vor? Gibt es wirklich keine bessere Lösung für dein Problem, als Benutzerinteraktionen zu simulieren?

...zur Antwort

Mit einem Rubber Ducky geht das relativ einfach (also z.B. so etwas: https://shop.hak5.org/products/usb-rubber-ducky-deluxe).

Mit einem normalen USB-Stick kannst du lediglich eine autorun.inf erstellen, allerdings wird das inzwischen in fast allen Fällen nicht mehr funktionieren.

...zur Antwort

Was mir zuerst auffällt sind die falschen if-Abfragen: Du hast hier Zahlen vorliegen, da solltest du keinen String-Vergleich durchführen und demnach auch keine Anführungszeichen verwenden. Vor allem aber solltest du nie die Anführungszeichen nur auf einer Seite verwenden, da z.B. `5=="5"` oder auch `16 leq "16"` immer false ist.

Zudem brauchst du keine else-if Verschachtelung, wenn du nur goto's benutzt.

Was aber wahrscheinlich den Fehler verursacht hat, ist das Springen zu Labels, welche nicht existieren. Ich habe dir hier mal eine verbesserte Version aufgeschrieben:

set /a ergebnis=%F1%+%F2%+%F3%+%F4%+%F5%
echo.
echo Deine Punktzahl ist %ergebnis%
echo.

ping localhost -n 3 >nul
if %ergebnis% LEQ  7 goto schlecht
if %ergebnis% LEQ 12 goto besser
if %ergebnis% LEQ 16 goto gut
if %ergebnis% LEQ 20 goto ehrenmann

:schlecht
  echo schlecht
  goto ende

:besser
  echo besser
  goto ende

:gut
  echo gut
  goto ende

:ehrenmann
  echo ehrenmann

echo wie auch immer
...zur Antwort