From: Ammar Faizi <[email protected]>
To: Muhammad Rizki <[email protected]>
Cc: Alviro Iskandar Setiawan <[email protected]>,
Arthur Lapz <[email protected]>, Memet Zx <[email protected]>,
GNU/Weeb Mailing List <[email protected]>
Subject: Re: [PATCH v2 11/11] feat(page): implement chat bubble message rendering
Date: Sun, 24 Sep 2023 02:26:09 +0700 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
On Sat, Sep 23, 2023 at 04:15:14PM +0700, Muhammad Rizki wrote:
> + function hashCode(name) {
> + var hash = 0;
> + for (var i = 0; i < name.length; i++) {
> + var character = name.charCodeAt(i);
> + hash = ((hash<<5)-hash)+character;
> + hash = hash & hash;
This is useless. `hash & hash` is always equal to `hash`. What are you even doing?
> + }
> + return Math.abs(hash);
> + }
> +
> + function getFixedRandomColor(name) {
> + const textColors = [
> + "text-red-400", "text-yellow-400",
> + "text-blue-400", "text-sky-400",
> + "text-purple-400", "text-orange-400",
> + "text-amber-400", "text-lime-400",
> + "text-green-400", "text-emerald-400",
> + "text-teal-400", "text-cyan-400",
> + "text-indigo-400", "text-violet-400",
> + "text-fuchsia-400", "text-pink-400",
> + "text-rose-400"
> + ];
> + const borderColors = [
> + "border-red-400", "border-yellow-400",
> + "border-blue-400", "border-sky-400",
> + "border-purple-400", "border-orange-400",
> + "border-amber-400", "border-lime-400",
> + "border-green-400", "border-emerald-400",
> + "border-teal-400", "border-cyan-400",
> + "border-indigo-400", "border-violet-400",
> + "border-fuchsia-400", "border-pink-400",
> + "border-rose-400"
> + ];
> +
> + const indexColor = hashCode(name) % textColors.length;
> + return [ textColors[indexColor], borderColors[indexColor] ];
> + }
Don't repeat yourself (DRY). Simplify it like:
```
function getFixedRandomColor(name) {
const colors = [
"red", "yellow", "blue", "sky", "purple", "orange",
"amber", "lime", "green", "emerald", "teal", "cyan",
"indigo", "violet", "fuchsia", "pink", "rose"
];
const c = colors[hashCode(name) % colors.length];
return [
"text-" + c + "-400",
"border-" + c + "-400",
];
}
```
[ Untested, may contain a mistake, but you get the idea. ]
--
Ammar Faizi
next prev parent reply other threads:[~2023-09-23 19:26 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-23 9:15 [PATCH v2 00/11] Refactoring and Add New Features Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 01/11] style: remove extra newline at end of file Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 02/11] feat(static/img): add `profile-cover.jpg` Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 03/11] refactor(page): improve page design and add profile image cover Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 04/11] feat(page): improve UX for copying text Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 05/11] chore(page): add newlines to enhance Developer Experience Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 06/11] feat(page): add GNUWeeb member list UI Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 07/11] feat(page): add `getOrgMembers()` function Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 08/11] feat(page): add `renderMemberList()` function Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 09/11] feat(page): add initial UI for displaying recent group messages Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 10/11] feat(css): add initial CSS class styles for chat bubbles Muhammad Rizki
2023-09-23 9:15 ` [PATCH v2 11/11] feat(page): implement chat bubble message rendering Muhammad Rizki
2023-09-23 19:26 ` Ammar Faizi [this message]
2023-09-24 9:37 ` Muhammad Rizki
2023-09-23 19:35 ` Ammar Faizi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox