Skip to content

Instantly share code, notes, and snippets.

View ericlewis's full-sized avatar

Eric Lewis ericlewis

View GitHub Profile
@ericlewis
ericlewis / ContentView.swift
Created February 3, 2022 16:33
Using enums as Views. Just copy and paste into an App Playground.
import SwiftUI
struct Application: Identifiable {
enum Icon {
case url(URL)
case systemImage(String)
}
let id: UUID = .init()
let name: String
// Works.
extension VW {
public static func buildBlock<Content: DynamicViewContent>(_ content: Content) -> some View where Content.Data: RandomAccessCollection, Content.Data.Element: Identifiable {
ViewBuilder.buildBlock(VStack { ForEach(content.data) { _ in Text("Test") } })
}
}
// Crashes
extension VW {
public static func buildBlock<Content: DynamicViewContent>(_ content: Content) -> some View where Content.Data: RandomAccessCollection, Content.Data.Element: Identifiable {
@ericlewis
ericlewis / index.html
Created April 9, 2021 02:54
softwarejameson.dance - feel free to make this responsive and better overall
<!DOCTYPE html>
<html>
<style type="text/css">
body {
width: 100%;
height: 100%;
position: absolute;
background-color: black;
top: 0%;
left: 0%;
@ericlewis
ericlewis / PlaidView.swift
Last active December 3, 2021 18:41
LinkKit V2 for SwiftUI
import LinkKit
import SwiftUI
struct PlaidViewPresenter: UIViewControllerRepresentable {
@Binding var isPresented: Bool
var configuration: LinkPublicKeyConfiguration
var exitCallback: ((LinkExit) -> Void)?
var successCallback: ((LinkSuccess) -> Void)?
@ericlewis
ericlewis / darkhn.js
Created December 14, 2020 17:17
Passthrough script for dark mode
/**
* An object with different URLs to fetch
* @param {Object} ORIGINS
*/
const ORIGINS = {
"darknews.ericlewis.workers.dev": "news.ycombinator.com"
}
async function handleRequest(request) {
const url = new URL(request.url)
@ericlewis
ericlewis / SKCloudServiceController+Combine.swift
Last active December 11, 2020 20:24
Simple future publishers for SKCloudServiceController
//
// StoreKit+Combine.swift
//
// Created by Eric Lewis on 12/11/20.
//
import StoreKit
import Combine
extension SKCloudServiceController {
@ericlewis
ericlewis / shit.swift
Created September 29, 2020 00:29
ugh
func fetchOrder(type: FeedType) {
DispatchQueue.global(qos: .userInitiated).async {
let context = PersistenceController.shared.container.newBackgroundContext()
self.orderCancellable = self.ref.child(type.hackerNewsEndpoint).observeSingleEventPublisher(of: .value)
.compactMap {
$0.value as? [Int]
}
.flatMap { orders -> Publishers.Sequence<[Int], Never> in
extension DatabaseReference {
func observeSingleEventPublisher(of eventType: DataEventType) -> AnyPublisher<DataSnapshot, Error> {
Future<DataSnapshot, Error> { [weak self] completion in
self?.observeSingleEvent(of: eventType) {
completion(.success($0))
}
}
.eraseToAnyPublisher()
}
}
//
// LPMetadataProvider+Combine.swift
// Hacker
//
// Created by Eric Lewis on 9/22/20.
//
import SwiftUI
import LinkPresentation
import Combine
import LinkPresentation
import Combine
extension LPMetadataProvider {
func startFetchingMetadataPublisher(for url: URL) -> AnyPublisher<LPLinkMetadata?, Error> {
Future<LPLinkMetadata?, Error> { completion in
self.startFetchingMetadata(for: url) { meta, error in
guard let error = error else {
return completion(.success(meta))
}