Files
windmill/frontend/src/lib/components/Star.svelte
T
Diego Imbert a3d75ba10a feat: favorite datatable and ducklake tables + asset page nits (#7795)
* update cf worker hostname

* set remote_url cookie from param

* ephemeral backends v1

* nit

* Run queue server

* ntis

* timeout

* better db process management

* commit hash and worktree

* nit use map

* nit

* err handling

* Revert "err handling"

This reverts commit 19de00c0c0.

* nits

* auto cleanup

* Ephemeral backend command action

* remove checkout

* checkout ee repo

* nits

* process.env.GIT_EE_DEPLOY_KEY_FILE

* resumeURLs logic

* nit

* use windmill flow for ephemeral backend action

* fixes

* new token

* worktree pools

* Delete GH secret on cleanup

* linux deploy

* nit

* nit

* unhandled promises

* nit

* fix docker bridge IP on linux

* pass cf_frontend_url to wmill flow

* git fetch

* release worktree when binary started

* send error

* logger

* logging

* logging 2

* delete log files periodically

* redirect to raw app with logs

* CORS

* MANAGER_AUTH_TOKEN

* Check organization membership

* nit

* bwrap

* nit

* return timeoutAt in resumeUrl

* nit

* Change password

* nit remove https

* Settings icon instead of plain text

* doc link

* favorite icon

* Better favorites state logic

* Asset favorites

* nit fixes and better label display

* global db manager drawer

* Favorites menu open db manager

* favorites in assets page + backend refactor

* Delete favorite dropdown

* parseFavoriteAsset

* git fail

* nit

* git fail

* nit

* nits

* git fail

* Table2 instead of pyramid
2026-02-04 18:48:51 +00:00

46 lines
1.1 KiB
Svelte

<script lang="ts">
import { preventDefault } from 'svelte/legacy'
import { Star, StarOff } from 'lucide-svelte'
import { favoriteManager, type FavoriteKind } from './sidebar/FavoriteMenu.svelte'
interface Props {
path: string
kind: FavoriteKind
summary?: string
workspaceId?: string
}
let { path, kind, workspaceId, summary }: Props = $props()
let buttonHover = $state(false)
let starred = $derived(favoriteManager.isStarred(path, kind))
async function onClick() {
buttonHover = false
if (starred) favoriteManager.unstar(path, kind, workspaceId)
else favoriteManager.star(path, kind, workspaceId, summary)
}
</script>
<button
onclick={preventDefault(onClick)}
onmouseenter={() => (buttonHover = true)}
onmouseleave={() => (buttonHover = false)}
class="p-1"
>
{#if starred}
{#if buttonHover}
<StarOff size={16} fill="currentcolor" />
{:else}
<Star size={16} fill="currentcolor" />
{/if}
{:else}
<Star
class={!buttonHover ? 'opacity-60' : ''}
size={16}
fill={buttonHover ? 'currentcolor' : 'none'}
/>
{/if}
</button>