Skip to content

Commit

Permalink
Merge pull request #22 from UmairKhalid786/develop
Browse files Browse the repository at this point in the history
Release 1.0.2
  • Loading branch information
UmairKhalid786 authored Jan 18, 2023
2 parents 806265f + 5c92d22 commit 1e77267
Show file tree
Hide file tree
Showing 78 changed files with 863 additions and 66 deletions.
9 changes: 9 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 7 additions & 4 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import org.jetbrains.compose.compose
import org.jetbrains.compose.desktop.application.dsl.TargetFormat

plugins {
kotlin("multiplatform")
kotlin("plugin.serialization") version "1.4.10"
id("org.jetbrains.compose")
id("org.jetbrains.compose") version "1.2.2"
}

val ktor_version: String by project
Expand Down Expand Up @@ -41,27 +40,31 @@ kotlin {
implementation(libs.jetbrains.serialization.kotlinx)
implementation(libs.jetbrains.kotlin.stdlib)
implementation(libs.jetbrains.kotlin.coroutines)
implementation(libs.jetbrains.kotlin.coroutines.swing)
}
}
val jvmMain by getting {
dependencies {
dependsOn(commonMain)
implementation(compose.desktop.currentOs)
implementation(compose.material)
implementation(compose.materialIconsExtended)
// Decompose : Decompose
implementation(libs.decompose)
implementation(libs.decompose.extensions)
// Icons libraries
implementation(libs.devsrsouza.compose.jetbrains.simple.icons)
implementation(libs.devsrsouza.compose.jetbrains.font.awesome)
implementation(libs.devsrsouza.compose.jetbrains.tabler.icon)
implementation(libs.devsrsouza.compose.jetbrains.line.awesome)
}
}
val jvmTest by getting
}
}

compose.desktop {
application {
mainClass = "MainKt"
mainClass = "mainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "WorkSpacePro"
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
kotlin.code.style=official
kotlin.version=1.6.10
kotlin.version=1.7.10
agp.version=4.2.2
compose.version=1.1.0
ktor_version=2.2.2
9 changes: 7 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,11 @@ palette = "1.0.0"
# @Keep
ktor = "2.2.2"
jetbrains-kotlinx = "1.4.1"
kotlin-stdlib = "1.2.30"
kotlin-stdlib = "1.3.0"
kotlin-coroutines = "1.6.4"

devsrsouza-compose-icons = "1.0.0"
decompose = "1.0.0-alpha-04"

[libraries]
accompanist-flowlayout = { module = "com.google.accompanist:accompanist-flowlayout", version.ref = "accompanist" }
Expand Down Expand Up @@ -146,7 +147,7 @@ hilt-gradlePlugin = { module = "com.google.dagger:hilt-android-gradle-plugin", v
junit = { module = "junit:junit", version.ref = "junit" }
kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
#kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" }
okhttp3 = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
Expand All @@ -173,9 +174,13 @@ ktor-client-negotiation = { module = "io.ktor:ktor-client-content-negotiation",
ktor-client-serialization-kotlinx = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" }

decompose = { module = "com.arkivanov.decompose:decompose", version.ref = "decompose" }
decompose-extensions = { module = "com.arkivanov.decompose:extensions-compose-jetbrains", version.ref = "decompose" }

jetbrains-serialization-kotlinx = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "jetbrains-kotlinx" }
jetbrains-kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin-stdlib" }
jetbrains-kotlin-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines" }
jetbrains-kotlin-coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlin-coroutines" }

devsrsouza-compose-jetbrains-simple-icons = { module = "br.com.devsrsouza.compose.icons.jetbrains:simple-icons", version.ref = "devsrsouza-compose-icons" }
devsrsouza-compose-jetbrains-font-awesome = { module = "br.com.devsrsouza.compose.icons.jetbrains:font-awesome", version.ref = "devsrsouza-compose-icons" }
Expand Down
1 change: 0 additions & 1 deletion src/commonMain/kotlin/ViewModel.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import io.ktor.utils.io.core.*
import kotlinx.coroutines.*
import kotlin.coroutines.CoroutineContext

expect abstract class ViewModel() {
/**
Expand Down
50 changes: 0 additions & 50 deletions src/jvmMain/kotlin/Main.kt

This file was deleted.

2 changes: 0 additions & 2 deletions src/jvmMain/kotlin/home/chat/ChatThumbnailList.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ package home.chat
import StaticViewModels.provideUsersViewModel
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
Expand Down
2 changes: 0 additions & 2 deletions src/jvmMain/kotlin/home/chat/detail/ChatInputView.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.material.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Face
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand Down
6 changes: 2 additions & 4 deletions src/jvmMain/kotlin/home/leftPanel/LeftMenuHeader.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,15 @@ package home

import DIM_TEXT_COLOR
import androidx.compose.foundation.layout.*
import androidx.compose.material.Icon
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import home.leftPanel.contextMenu.ContextMenuLeftMenu
import widgets.CircularNetworkIcon
import java.net.URL

Expand All @@ -32,7 +30,7 @@ fun LeftMenuHeader(expanded: Boolean) {
Spacer(modifier = Modifier.size(8.dp))
Text("$0.00", style = MaterialTheme.typography.caption, color = DIM_TEXT_COLOR.copy(alpha = 0.7F))
Spacer(Modifier.weight(1.0f, true))
Icon(Icons.Default.MoreVert, "menu", tint = DIM_TEXT_COLOR)
ContextMenuLeftMenu()
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package home.leftPanel.contextMenu

import DIM_TEXT_COLOR
import androidx.compose.foundation.ContextMenuArea
import androidx.compose.foundation.ContextMenuItem
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.key.onKeyEvent

@Composable
fun ContextMenuLeftMenu() {
ContextMenuArea(items = {
listOf(
ContextMenuItem("User-defined Action") {/*do something here*/ },
ContextMenuItem("Another user-defined action") {/*do something else*/ }
)
}) {
IconButton(onClick = {}){
Icon(Icons.Default.MoreVert, "menu", tint = DIM_TEXT_COLOR,
modifier = Modifier.onKeyEvent {
false
})
}
}
}
63 changes: 63 additions & 0 deletions src/jvmMain/kotlin/main.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.

import aboutMe.AboutMe
import androidx.compose.runtime.*
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.input.key.Key
import androidx.compose.ui.input.key.KeyShortcut
import androidx.compose.ui.window.MenuBar
import androidx.compose.ui.window.WindowState
import androidx.compose.ui.window.singleWindowApplication
import com.arkivanov.decompose.DefaultComponentContext
import com.arkivanov.decompose.ExperimentalDecomposeApi
import com.arkivanov.decompose.extensions.compose.jetbrains.lifecycle.LifecycleController
import com.arkivanov.essenty.lifecycle.LifecycleRegistry
import navigation.NavHostComponent
import theme.DecomposeDesktopExampleTheme
import javax.swing.SwingUtilities
import kotlin.system.exitProcess


/**
* Where all magic starts ;)
*/
@OptIn(ExperimentalDecomposeApi::class, ExperimentalComposeUiApi::class)
fun main() {
val windowState = WindowState()
val lifecycle = LifecycleRegistry()
val root = runOnMainThreadBlocking { NavHostComponent(DefaultComponentContext(lifecycle)) }

singleWindowApplication(
state = windowState,
title = "WorkspacePro",
) {
var isAboutMeOpen by remember { mutableStateOf(false) }

MenuBar {
Menu("Actions", mnemonic = 'A') {
Item("About", onClick = {
isAboutMeOpen = true
})
Separator()
Item("Exit", onClick = { exitProcess(0) }, shortcut = KeyShortcut(Key.Escape), mnemonic = 'E')
}
}

LifecycleController(lifecycle, windowState)
DecomposeDesktopExampleTheme {
root.render()

if (isAboutMeOpen) {
AboutMe {
isAboutMeOpen = false
}
}
}
}
}

private inline fun <T : Any> runOnMainThreadBlocking(crossinline block: () -> T): T {
lateinit var result: T
SwingUtilities.invokeAndWait { result = block() }
return result
}
8 changes: 8 additions & 0 deletions src/jvmMain/kotlin/navigation/Component.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package navigation

import androidx.compose.runtime.Composable

interface Component {
@Composable
fun render()
}
Loading

0 comments on commit 1e77267

Please sign in to comment.