Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add storybook #1

Merged
merged 3 commits into from
Mar 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ bigint/rsrc/target/
# kotlin-js
kotlin-js-store/
**/.kotlin-js-store/
**/node_modules/*

# Editors
*.suo
Expand Down
5 changes: 0 additions & 5 deletions .idea/codeStyles/Project.xml

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

2 changes: 2 additions & 0 deletions android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ tasks.withType(KotlinCompile::class.java) {
mustRunAfter(provideTestConfig)
}

/*
afterEvaluate {
tasks.named("generateDebugLintReportModel") {
mustRunAfter("kspDebugUnitTestKotlin")
Expand All @@ -190,3 +191,4 @@ afterEvaluate {
mustRunAfter("kspDebugUnitTestKotlin")
}
}
*/
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,13 @@ fun ActionButton(
}
}
}

@Composable
fun ActionButton2(text: String, onClick: () -> Unit) {
Button(onClick = onClick) {
Text(
text = text,
color = Color.text.warning
)
}
}
2 changes: 1 addition & 1 deletion data/location/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ kotlin {
dependencies {
implementation(antibytesCatalog.js.kotlin.stdlib)
implementation(antibytesCatalog.js.kotlinx.nodeJs)
implementation(antibytesCatalog.js.kotlin.wrappers.browser)
implementation(antibytesCatalog.js.kotlinx.wrappers.browser)

}
}
Expand Down
16 changes: 9 additions & 7 deletions data/position/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -72,25 +72,27 @@ kotlin {
val libraryName = "Locator"
val libraryPath = "$rootDir/data/position/$libraryName/build/Build/Products/Release-$platform"
val frameworksPath = libraryPath
val buildIosTask = ":data:position:Locator:build${platform.capitalize()}"
val definitionFile = "$projectDir/src/nativeInterop/cinterop/Locator.def"

compilations.getByName("main") {
cinterops.create("Locator") {
val interopTask = tasks[interopProcessingTaskName]
interopTask.dependsOn(":data:position:Locator:build${platform.capitalize()}")
interopTask.dependsOn(buildIosTask)
interopTask.mustRunAfter(buildIosTask)

// Path to .def file
defFile("$projectDir/src/nativeInterop/cinterop/Locator.def")
defFile(definitionFile)
includeDirs(libraryPath)
}
}

compilations.getByName("test") {
cinterops.create("Locator") {
val interopTask = tasks[interopProcessingTaskName]
interopTask.dependsOn(":data:position:Locator:build${platform.capitalize()}")
interopTask.dependsOn(buildIosTask)
interopTask.mustRunAfter(buildIosTask)

// Path to .def file
defFile("$projectDir/src/nativeInterop/cinterop/Locator.def")
defFile(definitionFile)
includeDirs.headerFilterOnly(libraryPath)
}
}
Expand Down Expand Up @@ -166,7 +168,7 @@ kotlin {
dependencies {
implementation(antibytesCatalog.js.kotlin.stdlib)
implementation(antibytesCatalog.js.kotlinx.nodeJs)
implementation(antibytesCatalog.js.kotlin.wrappers.browser)
implementation(antibytesCatalog.js.kotlinx.wrappers.browser)

}
}
Expand Down
2 changes: 1 addition & 1 deletion database/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ kotlin {
dependencies {
implementation(antibytesCatalog.js.kotlin.stdlib)
implementation(antibytesCatalog.js.kotlinx.nodeJs)
implementation(antibytesCatalog.js.kotlin.wrappers.browser)
implementation(antibytesCatalog.js.kotlinx.wrappers.browser)
implementation(antibytesCatalog.js.square.sqldelight.driver)
nodeProductionPackage(antibytesCatalog.node.sqlJs)
nodeDevelopmentPackage(antibytesCatalog.node.copyWebpackPlugin)
Expand Down
57 changes: 48 additions & 9 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ pluginManagement {
}

plugins {
id("tech.antibytes.gradle.dependency.settings") version "283c93a"
id("tech.antibytes.gradle.dependency.settings") version "601dc8e"
}

includeBuild("setup")
Expand All @@ -46,13 +46,17 @@ dependencyResolutionManagement {
version("kotlinx-coroutines-test", "1.7.1")
version("google-android-playservice-location", "21.1.0")
version("vico", "1.14.0")
version("node-react-test", "14.2.1")
version("material3", "1.2.0")
version("kvision", "7.4.2")
version("sass", "^1.29.0")
version("sass-loader", "^10.1.0")
version("gradle-node", "7.0.2")
version("storybook", "^7.6.17")
version("storybook-manager-webpack5", "^6.5.16")
version("gradle-node", "7.0.2")
version("react", "^18.2.0")
version("kotlin-wrappers-react-core", "18.2.0-pre.710")
version("kotlin-wrappers-react-dom", "18.2.0-pre.710")

library("kfixture", "tech.antibytes.kfixture", "core").versionRef("kfixture")
library("testUtils-core", "tech.antibytes.test-utils-kmp", "test-utils").versionRef("testUtils")
Expand Down Expand Up @@ -148,25 +152,60 @@ dependencyResolutionManagement {
"node-development",
"sass-loader",
).versionRef("sass-loader")
plugin(
"gradle-node",
"com.github.node-gradle.node",
).versionRef("gradle-node")
library(
"node-storybook-builder-webpack5",
"node-production",
"node-development",
"@storybook/builder-webpack5",
).versionRef("storybook")
library(
"node-storybook-manager-webpack5",
"node-production",
"node-development",
"@storybook/manager-webpack5",
).versionRef("storybook-manager-webpack5")
library(
"node-storybook-node-logger",
"node-development",
"@storybook/node-logger",
).versionRef("storybook")
library(
"node-storybook-node-logger",
"node-production",
"node-development",
"@storybook/node-logger",
).versionRef("storybook")
plugin(
"gradle-node",
"com.github.node-gradle.node"
).versionRef("gradle-node")
library(
"js-kvision-react",
"io.kvision",
"kvision-react",
).versionRef("kvision")
library(
"node-react-core",
"node-development",
"react",
).versionRef("react")
library(
"node-react-dom",
"node-development",
"react-dom",
).versionRef("react")
library(
"node-storybook-preset-create-react",
"node-development",
"@storybook/preset-create-react-app",
).versionRef("storybook")
library(
"node-storybook-react",
"node-development",
"@storybook/react",
).versionRef("storybook")
library(
"node-storybook-addon-essentials",
"node-development",
"@storybook/addon-essentials",
).versionRef("storybook")
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion setup/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ pluginManagement {
}

plugins {
id("tech.antibytes.gradle.dependency.settings") version "283c93a"
id("tech.antibytes.gradle.dependency.settings") version "601dc8e"
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 22 additions & 0 deletions stories/.storybook/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module.exports = {
stories: [
"/Users/bitpogo/projects/antibytes/keather/stories/build/compileSync/js/main/productionExecutable/kotlin/*.stories.tsx"
],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-onboarding",
"@storybook/addon-interactions",
],
framework: {
name: "@storybook/react-webpack5",
options: {
builder: {
useSWC: true,
},
},
},
docs: {
autodocs: "tag",
},
}
23 changes: 23 additions & 0 deletions stories/.storybook/main.xs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import type { StorybookConfig } from "@storybook/react-webpack5";

const config: StorybookConfig = {
stories: [ "../build/compileSync/js/main/developmentExecutable/kotlin/*.stories.js"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-onboarding",
"@storybook/addon-interactions",
],
framework: {
name: "@storybook/react-webpack5",
options: {
builder: {
useSWC: true,
},
},
},
docs: {
autodocs: "tag",
},
};
export default config;
3 changes: 3 additions & 0 deletions stories/.storybook/preview.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export const parameters = {

}
15 changes: 15 additions & 0 deletions stories/.storybook/preview.xs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import type { Preview } from "@storybook/react";

const preview: Preview = {
parameters: {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
};

export default preview;
61 changes: 57 additions & 4 deletions stories/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
*
* Use of this source code is governed by Apache v2.0
*/
import com.github.gradle.node.npm.task.NpmTask
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.*
import tech.antibytes.gradle.dependency.helper.nodePackage
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack

plugins {
alias(antibytesCatalog.plugins.gradle.antibytes.kmpConfiguration)
alias(antibytesCatalog.plugins.gradle.node)
}

kotlin {
Expand Down Expand Up @@ -39,7 +41,16 @@ kotlin {
customField(
"scripts",
mapOf(
"storybook" to "start-storybook -p 6006 -c ${layout.projectDirectory.asFile.absolutePath}/.storybook --ci"
"storybook" to "storybook dev -p 6006 -c ${layout.projectDirectory.asFile.absolutePath}/.storybook --ci",
"storybook-build" to "storybook build"
)
)
customField(
"overrides",
mapOf(
"react-scripts" to mapOf(
"typescript" to "^5"
)
)
)
}
Expand All @@ -50,10 +61,52 @@ kotlin {
val jsMain by getting {
dependencies {
implementation(projects.web)
implementation(antibytesCatalog.node.storybook.builder.webpack5)
implementation(antibytesCatalog.node.storybook.manager.webpack5)
implementation(antibytesCatalog.node.storybook.node.logger)
implementation(antibytesCatalog.js.kotlinx.wrappers.react.core)
implementation(antibytesCatalog.js.kotlinx.wrappers.react.dom)
implementation(antibytesCatalog.js.kvision.core)
implementation(antibytesCatalog.js.kvision.react)
nodePackage(antibytesCatalog.node.storybook.builder.webpack5)
nodePackage(antibytesCatalog.node.storybook.manager.webpack5)
nodePackage(antibytesCatalog.node.storybook.node.logger)
nodePackage(antibytesCatalog.node.storybook.react)
nodePackage(antibytesCatalog.node.storybook.addon.essentials)
nodePackage(antibytesCatalog.node.storybook.preset.create.react)
nodePackage(antibytesCatalog.node.react.core)
nodePackage(antibytesCatalog.node.react.dom)
}
}
}
}


val copyJsStories by tasks.creating(Copy::class.java) {
dependsOn("assemble")
from("$projectDir/src/main/js")
into("${layout.buildDirectory.get().asFile.absolutePath}/compileSync/main/developmentExecutable/kotlin")

eachFile {
if (isDirectory) {
exclude()
}
path = path.replace("/", ".")
}
}

tasks.named<DefaultTask>("build") {
dependsOn(copyJsStories)
}

val copyPackageJson by tasks.creating(Copy::class.java) {
dependsOn("build")
from("$${layout.buildDirectory.get().asFile.absolutePath}/tmp/publicPackageJson/package.json")
into(projectDir) {
include("*.*")
}
}


tasks.register<NpmTask>("start") {
dependsOn("npmInstall", copyPackageJson)
mustRunAfter(copyPackageJson)
args.addAll("run", "storybook")
}
12 changes: 12 additions & 0 deletions stories/loki.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module.exports = {
chromeSelector: '#storybook-root > *',
diffingEngine: 'pixelmatch',
configurations: {
'chrome.laptop': {
target: 'chrome.app',
width: 1366,
height: 768,
},
},
fetchFailIgnore: 'localhost:1234/get',
};
Loading
Loading