Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5718510779 | |||
| f877dc7fbe | |||
| df03fb1116 | |||
| 7455b49f8d |
@@ -1,47 +0,0 @@
|
|||||||
name: Build and Publish Docker Image
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- '*'
|
|
||||||
|
|
||||||
env:
|
|
||||||
REGISTRY: docker.io
|
|
||||||
IMAGE_NAME: ${{ github.repository }}
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-push:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Log in to Docker Hub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Extract metadata (tags, labels) for Docker
|
|
||||||
id: meta
|
|
||||||
uses: docker/metadata-action@v5
|
|
||||||
with:
|
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
||||||
tags: |
|
|
||||||
type=semver,pattern={{version}}
|
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
|
||||||
type=semver,pattern={{major}}
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: true
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
# 1.1.1
|
||||||
|
|
||||||
|
* Add chat quick link
|
||||||
|
|
||||||
# 1.1.0
|
# 1.1.0
|
||||||
|
|
||||||
* Add better theming support
|
* Add better theming support
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ android {
|
|||||||
applicationId "social.flotilla"
|
applicationId "social.flotilla"
|
||||||
minSdk rootProject.ext.minSdkVersion
|
minSdk rootProject.ext.minSdkVersion
|
||||||
targetSdk rootProject.ext.targetSdkVersion
|
targetSdk rootProject.ext.targetSdkVersion
|
||||||
versionCode 18
|
versionCode 20
|
||||||
versionName "1.0.4"
|
versionName "1.1.1"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
aaptOptions {
|
aaptOptions {
|
||||||
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
||||||
|
|||||||
@@ -351,14 +351,14 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 11;
|
CURRENT_PROJECT_VERSION = 13;
|
||||||
DEVELOPMENT_TEAM = S26U9DYW3A;
|
DEVELOPMENT_TEAM = S26U9DYW3A;
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
INFOPLIST_FILE = App/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat";
|
INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat";
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
MARKETING_VERSION = 1.0.4;
|
MARKETING_VERSION = 1.1.1;
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla;
|
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -376,14 +376,14 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 11;
|
CURRENT_PROJECT_VERSION = 13;
|
||||||
DEVELOPMENT_TEAM = S26U9DYW3A;
|
DEVELOPMENT_TEAM = S26U9DYW3A;
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
INFOPLIST_FILE = App/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat";
|
INFOPLIST_KEY_CFBundleDisplayName = "Flotilla Chat";
|
||||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||||
MARKETING_VERSION = 1.0.4;
|
MARKETING_VERSION = 1.1.1;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla;
|
PRODUCT_BUNDLE_IDENTIFIER = social.flotilla;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "flotilla",
|
"name": "flotilla",
|
||||||
"version": "1.0.4",
|
"version": "1.1.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
import Button from "@lib/components/Button.svelte"
|
import Button from "@lib/components/Button.svelte"
|
||||||
import RoomCreate from "@app/components/RoomCreate.svelte"
|
import RoomCreate from "@app/components/RoomCreate.svelte"
|
||||||
import ChannelName from "@app/components/ChannelName.svelte"
|
import ChannelName from "@app/components/ChannelName.svelte"
|
||||||
import {makeThreadPath, makeCalendarPath, makeRoomPath} from "@app/routes"
|
import {makeThreadPath, makeCalendarPath, makeRoomPath, makeSpacePath} from "@app/routes"
|
||||||
import {
|
import {
|
||||||
hasNip29,
|
hasNip29,
|
||||||
deriveUserRooms,
|
deriveUserRooms,
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
const relay = deriveRelay(url)
|
const relay = deriveRelay(url)
|
||||||
const userRooms = deriveUserRooms(url)
|
const userRooms = deriveUserRooms(url)
|
||||||
const otherRooms = deriveOtherRooms(url)
|
const otherRooms = deriveOtherRooms(url)
|
||||||
|
const chatPath = makeSpacePath(url, "chat")
|
||||||
const threadsPath = makeThreadPath(url)
|
const threadsPath = makeThreadPath(url)
|
||||||
const calendarPath = makeCalendarPath(url)
|
const calendarPath = makeCalendarPath(url)
|
||||||
|
|
||||||
@@ -76,34 +77,48 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
{#if $userRooms.length + $otherRooms.length > 10}
|
|
||||||
<label class="input input-sm input-bordered flex flex-grow items-center gap-2">
|
|
||||||
<Icon icon="magnifer" size={4} />
|
|
||||||
<input bind:value={term} class="grow" type="text" placeholder="Search rooms..." />
|
|
||||||
</label>
|
|
||||||
{/if}
|
|
||||||
{#each filteredRooms() as room (room)}
|
|
||||||
{@const roomPath = makeRoomPath(url, room)}
|
|
||||||
{@const channel = $channelsById.get(makeChannelId(url, room))}
|
|
||||||
<Link href={roomPath} class="btn btn-neutral btn-sm relative w-full justify-start">
|
|
||||||
<div class="flex min-w-0 items-center gap-2 overflow-hidden text-nowrap">
|
|
||||||
{#if channel?.closed || channel?.private}
|
|
||||||
<Icon icon="lock" size={4} />
|
|
||||||
{:else}
|
|
||||||
<Icon icon="hashtag" />
|
|
||||||
{/if}
|
|
||||||
<ChannelName {url} {room} />
|
|
||||||
</div>
|
|
||||||
{#if $notifications.has(roomPath)}
|
|
||||||
<div class="absolute right-1 top-1 h-2 w-2 rounded-full bg-primary" transition:fade></div>
|
|
||||||
{/if}
|
|
||||||
</Link>
|
|
||||||
{/each}
|
|
||||||
{#if hasNip29($relay)}
|
{#if hasNip29($relay)}
|
||||||
|
{#if $userRooms.length + $otherRooms.length > 10}
|
||||||
|
<label class="input input-sm input-bordered flex flex-grow items-center gap-2">
|
||||||
|
<Icon icon="magnifer" size={4} />
|
||||||
|
<input bind:value={term} class="grow" type="text" placeholder="Search rooms..." />
|
||||||
|
</label>
|
||||||
|
{/if}
|
||||||
|
{#each filteredRooms() as room (room)}
|
||||||
|
{@const roomPath = makeRoomPath(url, room)}
|
||||||
|
{@const channel = $channelsById.get(makeChannelId(url, room))}
|
||||||
|
<Link href={roomPath} class="btn btn-neutral btn-sm relative w-full justify-start">
|
||||||
|
<div class="flex min-w-0 items-center gap-2 overflow-hidden text-nowrap">
|
||||||
|
{#if channel?.closed || channel?.private}
|
||||||
|
<Icon icon="lock" size={4} />
|
||||||
|
{:else}
|
||||||
|
<Icon icon="hashtag" />
|
||||||
|
{/if}
|
||||||
|
<ChannelName {url} {room} />
|
||||||
|
</div>
|
||||||
|
{#if $notifications.has(roomPath)}
|
||||||
|
<div class="absolute right-1 top-1 h-2 w-2 rounded-full bg-primary" transition:fade>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</Link>
|
||||||
|
{/each}
|
||||||
<Button onclick={addRoom} class="btn btn-neutral btn-sm w-full justify-start">
|
<Button onclick={addRoom} class="btn btn-neutral btn-sm w-full justify-start">
|
||||||
<Icon icon="add-circle" />
|
<Icon icon="add-circle" />
|
||||||
Create Room
|
Create Room
|
||||||
</Button>
|
</Button>
|
||||||
|
{:else}
|
||||||
|
<Link href={chatPath} class="btn btn-neutral w-full justify-start">
|
||||||
|
<div class="relative flex items-center gap-2">
|
||||||
|
<Icon icon="chat-round" />
|
||||||
|
Chat
|
||||||
|
{#if $notifications.has(chatPath)}
|
||||||
|
<div
|
||||||
|
class="absolute -right-3 -top-1 h-2 w-2 rounded-full bg-primary-content"
|
||||||
|
transition:fade>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</Link>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user